Cela semble fonctionner :
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)
cela signifie 1ère valeur, 2ème, 3ème, etc.
Explication :
Le substring_index
interne renvoie les n premières valeurs séparées par des virgules. Donc, si votre chaîne d'origine est "34,7,23,89", substring_index( context,',', 3)
renvoie "34,7,23".
Le substring_index
externe prend la valeur renvoyée par le substring_index
interne et le -1
permet de prendre la dernière valeur. Ainsi, vous obtenez "23" à partir du "34,7,23".
Au lieu de -1
si vous spécifiez -2
, vous obtiendrez "7,23", car il a pris les deux dernières valeurs.
Exemple :
select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;
Ici, les prices
est le nom d'une colonne dans MyTable
.