Het lijkt te werken:
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)
het betekent 1e waarde, 2e, 3e, enz.
Uitleg:
De innerlijke substring_index
geeft de eerste n waarden terug die door komma's zijn gescheiden. Dus als je originele string "34,7,23,89" is, substring_index( context,',', 3)
geeft "34,7,23" terug.
De buitenste substring_index
neemt de waarde die wordt geretourneerd door de binnenste substring_index
en de -1
stelt u in staat om de laatste waarde te nemen. Je krijgt dus "23" van de "34,7,23".
In plaats van -1
als u -2
. specificeert , krijg je "7,23", omdat de laatste twee waarden nodig waren.
Voorbeeld:
select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;
Hier, prices
is de naam van een kolom in MyTable
.