Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql peut-il diviser une colonne ?

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 .