Comptage des instances de sous-chaînes et classement par occurrence dans MySQL
Dans MySQL, vous pouvez compter les occurrences d'une sous-chaîne spécifique dans un champ de chaîne et triez ensuite les résultats en fonction du nombre d'occurrences dans un ordre décroissant.
Requête :
La requête suivante accomplit cette tâche :
SELECT (CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, substr, ''))) / CHAR_LENGTH(substr) AS cnt
...
ORDER BY cnt DESC
Copier après la connexion
Explication :
- La fonction externe CHAR_LENGTH() calcule la longueur totale du champ de chaîne str.
- La fonction interne REPLACE() remplace toutes les instances de la sous-chaîne substr avec une chaîne vide. En soustrayant la longueur de la chaîne remplacée de la longueur totale, nous obtenons le nombre d'occurrences de la sous-chaîne.
- Divisant cette différence par la longueur de substr nous donne le nombre total d'occurrences de sous-chaîne.
- L'alias cnt nous permet de référencer la valeur calculée dans la clause ORDER BY, qui trie les résultats par ordre décroissant en fonction du nombre d'occurrences de sous-chaîne.
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!