Le SGBDR MySQL ne dispose pas de méthode similaire à Split (Java) ou Explode (PHP) permettant d'extraire une liste d'éléments depuis une chaîne contenant un séparateur particulier. Typiquement, extraire la chaîne "b" depuis "a;b;c".
Cependant, la fonction SUBSTRING_INDEX (chaîne, séparateur, compteur) peut être utilisée pour pallier ce manque.
SUBSTRING_INDEX extrait une partie de chaîne du début de la chaîne jusqu'au nombre d'éléments indiqué. Quelques exemples :
renverra 'a'
renverra 'a;b'
renverra 'a;b;c'
Le 3ème paramètre, le compteur, utilise une valeur positive pour la recherche de gauche à droite et une valeur négative pour une recherche de droite à gauche.
renverra 'c'
renverra 'b;c'
renverra 'a;b;c'
L'astuce consiste à combiner 2 appels à cette fonction. Deux possibilités :
Par exemple, pour extraire le "b" en 2ème position, on peut faire :
ou
RSS | Informations |