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 .