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

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

Susan Sarandon
Susan Sarandonoriginal
2024-12-03 20:52:12897parcourir

How Can I Extract Substrings from a Delimited String in MySQL?

Extraire des sous-chaînes dans MySQL à l'aide de délimiteurs

Problème :
Extraire des sous-chaînes d'une chaîne dans MySQL qui contient plusieurs valeurs séparées par un délimiteur spécifique, tel qu'une virgule (,).

Réponse :

Bien que MySQL ne dispose pas d'une fonction de chaîne divisée intégrée, il existe des approches alternatives pour y parvenir :

Fonction définie par l'utilisateur :
Implémentez une fonction définie par l'utilisateur (UDF) qui divise la chaîne en fonction de la valeur spécifiée. délimiteur.

Exemple de requête (verbeux) :
À des fins de démonstration, supposons que n représente le nombre de sous-chaînes que vous souhaitez extraire :

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 1), ',', -1) AS colorfirst,
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 2), ',', -1) AS colorsecond
...
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', n), ',', -1) AS colornth
FROM product;

Dans ce Par exemple, la fonction SUBSTRING_INDEX permet d'extraire la première sous-chaîne, puis la seconde, et ainsi de suite jusqu'à la nième sous-chaîne.

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