Det ser ud til at virke:
substring_index ( substring_index ( context,',',1 ), ',', -1)
substring_index ( substring_index ( context,',',2 ), ',', -1)
substring_index ( substring_index ( context,',',3 ), ',', -1)
substring_index ( substring_index ( context,',',4 ), ',', -1)
det betyder 1. værdi, 2., 3. osv.
Forklaring:
Den indre substring_index
returnerer de første n værdier, der er kommasepareret. Så hvis din oprindelige streng er "34,7,23,89", substring_index( context,',', 3)
returnerer "34,7,23".
Det ydre substring_index
tager den værdi, der returneres af det indre substring_index
og -1
giver dig mulighed for at tage den sidste værdi. Så du får "23" fra "34,7,23".
I stedet for -1
hvis du angiver -2
, får du "7,23", fordi den tog de sidste to værdier.
Eksempel:
select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;
Her prices
er navnet på en kolonne i MyTable
.