MySQL按時間排序分頁問題
阿新 • • 發佈:2019-01-05
在按時間排序進行分頁的時候,遇見了這樣的問題。在查詢所有的資料,並沒有重複的資料出現,但是按時間排序,分頁後有重複的資料。dodo不知道大家有沒有遇見過。
建表是這樣的:
然後查詢這張表使用者邀請表,並按建立時間進行排序。顯示資料。
註釋:注意圖中標藍的new_user_id
現在開始進行分頁查詢這條資料,並按建立時間進行排序:
查詢的第一頁
註釋:注意圖中標藍的new_user_id
在這第一頁中new_user_id的資料在第5個出現。
查詢的第二頁
註釋:出現相同的資料new_user_id 的資料。
在這第二頁中new_user_id的資料在第4個出現
查詢的第三頁
註釋:出現相同的資料new_user_id 的資料。
在這第三頁中new_user_id的資料在第1個出現
如果心細的人會發現,在這幾張表中,建立的每行資料的create_time的時間都是相同的。
如果是不同的時間,不會出現按時間進行排序,並分頁的重複資料
由此,可以看出,如果時間相同的情況下,MySQL通過時間進行排序,並進行分頁查詢大量資料的時候,會出現重複的資料的現象。
解決這個問題。可以先通過時間進行排序,如果時間相同的情況下,再根據ID,或者其他的欄位去進行排序。
示例:
同樣的資料。
查詢的第一頁
查詢的第二頁
查詢的第三頁