程序執行會重復
用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,
這樣也只是目前解決了這個問題,如果說相同的字段很多,那這個方法也會出現問題
Live together,or Die alone!