Maison >base de données >tutoriel mysql >Comment extraire des sous-chaînes d'une chaîne délimitée dans MySQL ?
Extraction de sous-chaînes MySQL à l'aide d'un délimiteur
L'extraction de sous-chaînes d'une chaîne dans MySQL peut être réalisée à l'aide de la fonction SUBSTRING_INDEX. Cette fonction vous permet de spécifier le délimiteur pour séparer les sous-chaînes et la position de la sous-chaîne que vous souhaitez extraire.
Par exemple, considérez le tableau suivant :
item_code | name | colors |
---|---|---|
102 | ball | red,yellow,green |
104 | balloon | yellow,orange,red |
Pour extraire les couleurs comme sous-chaînes distinctes, vous pouvez utiliser la requête suivante :
SELECT item_code, name, SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 1), ',', -1) AS color_first, SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 2), ',', -1) AS color_second FROM Product;
La fonction SUBSTRING_INDEX est appliquée deux fois dans cette requête. La première fois, il est utilisé pour trouver la première sous-chaîne, et la deuxième fois, il est utilisé pour extraire les sous-chaînes restantes du résultat de la première application.
Le résultat résultant sera le suivant :
item_code | name | color_first | color_second |
---|---|---|---|
102 | ball | red | yellow |
104 | balloon | yellow | orange |
Notez qu'une version plus détaillée de la requête qui récupère toutes les sous-chaînes serait :
SELECT item_code, name, SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 1), ',', -1) AS color_first, SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 2), ',', -1) AS color_second, SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 3), ',', -1) AS color_third FROM Product;
Cette requête plus longue récupère toutes les sous-chaînes du champ couleurs, en utilisant le même modèle que la requête plus courte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!