Maison >base de données >tutoriel mysql >Comment compter les occurrences de sous-chaînes et trier les résultats dans MySQL ?
Comptage des instances d'une sous-chaîne et tri par occurrence (MySQL)
Problème :
Vous souhaitez compter les occurrences d'une sous-chaîne spécifique dans un champ de chaîne dans une base de données MySQL. De plus, vous devez trier les résultats par ordre décroissant en fonction du nombre d'occurrences.
Solution :
Pour ce faire, vous pouvez utiliser ce qui suit query:
SELECT (CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, substr, ''))) / CHAR_LENGTH(substr) AS cnt FROM table_name ORDER BY cnt DESC
Explication:
La clause ORDER BY cnt DESC classe les résultats de la requête par ordre décroissant, en plaçant les enregistrements avec le plus grand nombre d'occurrences de sous-chaînes en haut.
Exemple d'utilisation :
Supposons que vous ayez un tableau appelé chaînes avec un texte de colonne contenant diverses chaînes. Pour compter les occurrences de la sous-chaîne "le" dans la colonne de texte et trier les résultats par nombre d'occurrences :
SELECT (CHAR_LENGTH(text) - CHAR_LENGTH(REPLACE(text, 'the', ''))) / CHAR_LENGTH('the') AS cnt FROM strings ORDER BY cnt DESC
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!