Mysql中,order by + limt的大坑

前端向後端查數據,後端使用mybatis plus的page分頁返回數據。但是返回的數據有很多重複,並且漏了很多數據。但是page顯示數據的總條數是對的。

直接在數據庫上執行mybatis plus對應的sql。結果如下:

不加limit時,17條數據全查出來

加上limit後發現,第一頁,第二頁,第三頁有重複數據,並且data_id靠後的數據查不出

上圖可以看到,就沒出現過data_id > 81的數據。

上網搜了下,發現這個是一個很常見的bug。因爲order by的字段裏面,一旦有相同的值,就會出現這種情況,具體的機制原理不懂~~

 

解決方法:既然是因爲order by字段裏有相同值導致的,那就在order by最後加上主鍵id,那就不會有重複了,結果如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章