Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zwinięcie limitu mysql, które skutkuje interakcją danych

Użyj order by !

Tabele SQL reprezentują nieuporządkowane zestawy wierszy. Bez order by klauzula, baza danych może zwrócić wiersze w dowolnej kolejności, a wyniki mogą nie być spójne w kolejnych wykonaniach tego samego zapytania (stąd paginacja nie jest stabilna).

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

Pamiętaj, że nie tylko potrzebujesz order by klauzula, ale również ta klauzula musi być deterministyczna . Oznacza to, że kolumna (lub zestaw kolumn) w klauzuli musi jednoznacznie identyfikować każdy rekord - w przeciwnym razie znowu jest niezdefiniowana kolejność pobierania powiązań.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Radzenie sobie z serwerem PHP i serwerem MySQL w różnych strefach czasowych

  2. Jak przekonwertować czas UTC na czas lokalny w MySQL?

  3. Null reference z modułu sterownika MySQL z taskpane.js i dodatku Microsoft Office

  4. Jak sprawdzić, czy mam niezatwierdzone zapisy w transakcji MySQL?

  5. Czy można używać wielu/zagnieżdżonych instrukcji MySQLi?