Maison >base de données >tutoriel mysql >Comment puis-je compter les éléments dans une liste séparée par des virgules dans MySQL ?

Comment puis-je compter les éléments dans une liste séparée par des virgules dans MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 03:36:40612parcourir

How Can I Count Items in a Comma-Separated List in MySQL?

Comptage des éléments dans une liste séparée par des virgules dans MySQL

Détermination du nombre d'éléments dans une liste séparée par des virgules stockés dans une colonne MySQL peut être une tâche courante dans l'analyse des données.

Utiliser la longueur de la chaîne Manipulation

Pour y parvenir sans utiliser de fonctions supplémentaires, vous pouvez exploiter la différence entre la chaîne de liste d'origine et son homologue débarrassée des virgules :

LENGTH(fooCommaDelimColumn) - LENGTH(REPLACE(fooCommaDelimColumn, ',', ''))

Cette expression soustrait la longueur de la chaîne débarrassée des virgules de la longueur de la chaîne d'origine. Étant donné que les virgules contribuent à la longueur totale, leur absence indique le nombre d'éléments.

Gestion des virgules de fin

Notez que dans ce cas, les données fournies incluent une virgule de fin supplémentaire virgule. Ceci est particulièrement pertinent car les calculs traditionnels de longueur de chaîne incluent cette virgule de fin, ce qui entraîne un décompte incorrect. En l'excluant à l'aide de la fonction REPLACE, le décompte précis est obtenu.

Cas général sans virgule finale

Dans les cas généraux où la chaîne séparée par des virgules n'a pas une virgule finale, telle que "foo,bar,baz", une expression modifiée est nécessaire :

LENGTH(col) - LENGTH(REPLACE(col, ',', '')) + 1

Les 1 comptes supplémentaires pour la virgule de fin manquante, garantissant ainsi un nombre d'éléments correct.

En employant ces techniques de manipulation de chaînes, vous pouvez compter efficacement les éléments dans une liste séparée par des virgules à l'aide de requêtes SQL pures.

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