Maison >base de données >tutoriel mysql >Comment compter les occurrences de sous-chaînes et les trier par nombre dans 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
Pour triez davantage les résultats par ordre décroissant du nombre de sous-chaînes, ajoutez ce qui suit :
ORDER BY cnt DESC
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
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 le hôte avec le plus 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!