Mysql
 sql >> Base de données >  >> RDS >> Mysql

effondrement de la limite mysql, qui entraîne une interaction des données

Utilisez order by !

Les tables SQL représentent des ensembles de lignes non ordonnés. Sans order by clause, la base de données est libre de renvoyer les lignes dans l'ordre qu'elle souhaite, et les résultats peuvent ne pas être cohérents lors d'exécutions consécutives de la même requête (par conséquent, la pagination n'est pas stable).

select course_id, grade_id 
from sc_base_course 
where  agency_id = 10000  
order by course_id, grade_id
limit 10,10;

Notez que non seulement vous avez besoin d'un order by clause, mais aussi cette clause doit être déterministe . C'est-à-dire que la colonne (ou l'ensemble de colonnes) de la clause doit identifier de manière unique chaque enregistrement ; sinon, l'ordre dans lequel les liens seront extraits n'est, encore une fois, pas défini.