Det verkar fungera:
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:a värdet, 2:a, 3:a, etc.
Förklaring:
Det inre substring_index
returnerar de första n värdena som är kommaseparerade. Så om din ursprungliga sträng är "34,7,23,89", substring_index( context,',', 3)
returnerar "34,7,23".
Det yttre substring_index
tar värdet som returneras av det inre substring_index
och -1
låter dig ta det sista värdet. Så du får "23" från "34,7,23".
Istället för -1
om du anger -2
, får du "7,23", eftersom det tog de två sista värdena.
Exempel:
select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;
Här, prices
är namnet på en kolumn i MyTable
.