Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql-Grenzkollaps, was zu einer Dateninteraktion führt

Verwenden Sie order by !

SQL-Tabellen repräsentieren ungeordnete Sätze von Zeilen. Ohne order by -Klausel steht es der Datenbank frei, die Zeilen in beliebiger Reihenfolge zurückzugeben, und die Ergebnisse sind bei aufeinanderfolgenden Ausführungen derselben Abfrage möglicherweise nicht konsistent (daher ist die Paginierung nicht stabil).

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

Beachten Sie, dass Sie nicht nur einen order by benötigen Klausel, aber auch diese Klausel muss deterministisch sein . Das heißt, die Spalte (oder der Satz von Spalten) in der Klausel muss jeden Datensatz eindeutig identifizieren – andernfalls ist es wiederum nicht definiert, in welcher Reihenfolge Bindungen abgerufen werden.