Maison  >  Article  >  base de données  >  Comment résoudre le piège de la commande MySQL par limite

Comment résoudre le piège de la commande MySQL par limite

WBOY
WBOYavant
2023-05-27 11:03:221556parcourir

Pièges rencontrés lors de l'exécution de requêtes de pagination :

Problème découvert : après avoir trié un seul champ non indexé, une limite a été trouvée. Il a été constaté que lorsque les champs triés ont la même valeur et sont dans la plage limite, la valeur prise n'est pas la valeur après le tri normal,

Autrement dit, lorsque les données classées dans la ligne N peuvent être clé1 ou clé2, le résultat du tri peut être clé1 ou clé2.

mysql order by limit的坑怎么解决

Trier + limiter les résultats (clé de tri sans index)
Appuyez sur cnt pour obtenir le mot-clé et obtenir les trois premiers résultats :

mysql order by limit的坑怎么解决

Texte original :

Si plusieurs lignes ont des valeurs identiques dans les colonnes ORDER BY, le serveur est libre de renvoyer ces lignes dans n'importe quel ordre, et peut le faire différemment en fonction du plan d'exécution global. En d'autres termes, l'ordre de tri de ces lignes n'est pas déterministe. par rapport aux colonnes non ordonnées.
Cela signifie que si les colonnes de order by ont la même valeur, mysql sélectionnera aléatoirement ces lignes, qui varieront en fonction du plan d'exécution.

Solution : La colonne order by contient une colonne d'index
Ajoutez l'identifiant de la clé primaire ici comme colonne de tri

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer