mysql的limit、order by和group by的用法


用mysql很長時間,limit是分頁的一個好工具,

select * from table_a where num = 4 limit 1,10,

select * from table_a where num = 4 limit 10,10,

今天突然發現有些數據怎么也不會出來

也就是說第一頁的數據會重復顯示在第二頁,有些在數據庫的數據不會被查詢出來

這樣就造成了數據的缺失,如果用

select * from table_a where num = 4 order by num1 ASC limit 1,10,

select * from table_a where num = 4 order by num1 ASC limit 10,10,

可以解決這個問題。

於是開始有group by的問題

select * from table_a where num = 4 group by num1 order by num1 ASC limit 1,10,

select * from table_a where num = 4 group by num1 order by num1 ASC limit 10,10,

這樣又會出現數據缺失的問題

這時候只有增加排序的字段來處理這個問題

也就是

select * from table_a where num = 4 group by num1 order by num1, num2 ASC limit 1,10,

select * from table_a where num = 4 group by num1 order by num1, num2 ASC limit 10,10,

這樣也只是目前解決了這個問題,如果說相同的字段很多,那這個方法也會出現問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM