sql >> Database teknologi >  >> RDS >> Mysql

mysql limit kollaps, hvilket resulterer i datainteraktion

Brug order by !

SQL-tabeller repræsenterer uordnede sæt rækker. Uden en order by klausul, er databasen fri til at returnere rækkerne i den rækkefølge, den vil, og resultaterne er muligvis ikke konsistente over på hinanden følgende udførelser af den samme forespørgsel (derfor er paginering ikke stabil).

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

Bemærk, at du ikke kun har brug for en order by klausul, men også denne klausul skal være deterministisk . Det vil sige, at kolonnen (eller sættet af kolonner) i klausulen skal identificere hver post entydigt - ellers er det igen udefineret, i hvilken rækkefølge bindinger vil blive hentet.




  1. Får fejl 1366 Forkert heltalsværdi:'1' ved import af fil

  2. indsætte og opdatere med lagret procedure

  3. Bruger Oracle XMLType-kolonnen i dvale

  4. Sådan kommer du rundt i Slick 3.0-skemaoprettelse får fejl på grund af nøglespecifikationer uden længde