Maison > base de données > tutoriel mysql > le corps du texte

Comment compter les occurrences de sous-chaînes et les trier par nombre dans MySQL ?

Barbara Streisand
Libérer: 2024-11-14 15:16:02
original
355 Les gens l'ont consulté

How to Count Substring Occurrences and Order by Count in MySQL?

Comptage des instances de sous-chaîne dans MySQL et classement par nombre

Dans MySQL, recherche du nombre d'occurrences d'une sous-chaîne dans une colonne de chaîne et classement les résultats basés sur ce décompte peuvent être obtenus grâce à une combinaison de manipulation de chaînes et de fonctions d'agrégation. Pour relever ce défi, examinons la solution :

La requête ci-dessous exploite les fonctions CHAR_LENGTH() et REPLACE() pour calculer le nombre d'occurrences de sous-chaîne :

SELECT (CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, substr, ''))) / CHAR_LENGTH(substr) AS cnt
Copier après la connexion
  • CHAR_LENGTH(str) détermine la longueur de la chaîne entière.
  • CHAR_LENGTH(REPLACE(str, substr, '')) calcule la longueur de la chaîne après avoir remplacé toutes les instances de la sous-chaîne par une chaîne vide, ce qui donne effectivement la longueur de la chaîne sans la sous-chaîne.
  • En soustrayant cette dernière de la première et en divisant par la longueur de la sous-chaîne, nous obtenons le nombre d'occurrences de sous-chaîne.

Pour trier davantage les résultats par ordre décroissant du nombre de sous-chaînes, ajoutez le suivant :

ORDER BY cnt DESC
Copier après la connexion

Cela présentera les données triées par nombre d'occurrences de sous-chaînes, le nombre le plus élevé apparaissant en premier.

Un exemple d'utilisation de cette requête :

SELECT host, (CHAR_LENGTH(host) - CHAR_LENGTH(REPLACE(host, 'l', ''))) / CHAR_LENGTH('l') AS cnt
FROM user
ORDER BY cnt DESC
Copier après la connexion

Cette requête récupère tous les hôtes uniques de la table utilisateur, compte les occurrences de la sous-chaîne 'l' au sein de chaque hôte et classe les résultats par nombre, affichant l'hôte avec le plus grand nombre d'occurrences de « l » en haut.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal