Maison >base de données >tutoriel mysql >Comment extraire des sous-chaînes d'une chaîne délimitée dans MySQL ?

Comment extraire des sous-chaînes d'une chaîne délimitée dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-27 16:43:14661parcourir

How to Extract Substrings from a Delimited String in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn