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 trier davantage les résultats par ordre décroissant du nombre de sous-chaînes, ajoutez le suivant :
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 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!