Utiliser efficacement COUNT(*) dans les clauses MySQL WHERE
Pour obtenir le résultat souhaité dans MySQL, où vous souhaitez sélectionner des valeurs gid distinctes avec une condition COUNT(*) supérieure à 10 et triez les résultats par ordre décroissant, l'approche que vous avez suggérée en utilisant une requête SELECT imbriquée dans la clause WHERE n'est peut-être pas la plus efficace.
Envisagez plutôt d'utiliser GROUP BY et AVOIR des clauses pour accomplir votre tâche. Voici la requête corrigée :
SELECT gid FROM `gd` GROUP BY gid HAVING COUNT(*) > 10 ORDER BY lastupdated DESC
Comprendre la requête
La clause GROUP BY organise les données de la table gd par la colonne gid. Cette action regroupe les lignes avec la même valeur gid.
Ensuite, la clause HAVING applique un filtre aux lignes regroupées, en sélectionnant uniquement celles avec un COUNT(*) supérieur à 10. Cela garantit que les résultats renvoyés correspondent vos critères de fréquence spécifiés.
Enfin, la clause ORDER BY organise les lignes restantes par ordre décroissant en fonction de l'horodatage de la dernière mise à jour, vous donnant le tri souhaité.
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!