Maison >base de données >tutoriel mysql >Comment extraire des sous-chaînes d'une chaîne MySQL avec un délimiteur ?

Comment extraire des sous-chaînes d'une chaîne MySQL avec un délimiteur ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-28 13:20:12759parcourir

How to Extract Substrings from a MySQL String with a Delimiter?

Extraire des sous-chaînes d'une chaîne MySQL avec un délimiteur

Dans MySQL, extraire des sous-chaînes d'une chaîne peut être difficile si la chaîne contient plusieurs sous-chaînes séparées par délimiteurs. Cependant, il existe des techniques pour y parvenir en utilisant les fonctions MySQL standard.

Solution utilisant la fonction Split

Malheureusement, MySQL ne prend pas en charge nativement une fonction de chaîne divisée. Cependant, des fonctions de fractionnement personnalisées peuvent être créées à l'aide de procédures stockées ou de fonctions définies par l'utilisateur. Reportez-vous à des ressources externes telles que celle fournie dans la réponse.

Méthode détaillée utilisant SUBSTRING_INDEX

Pour une extraction de données simple, une approche plus détaillée peut être utilisée :

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;

Cette instruction SQL utilise à plusieurs reprises la fonction SUBSTRING_INDEX pour décomposer la chaîne de couleurs en sous-chaînes individuelles en fonction de la délimiteur virgule. La variable « n » représente la position de la sous-chaîne souhaitée dans la chaîne. Par exemple, si vous souhaitez extraire les trois premières couleurs du champ « couleurs », vous définirez « n » sur 1, 2 et 3 dans l'instruction ci-dessus.

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