2017-07-18 71 views
-1

這是我的SQL:使用mysql命令,相同的記錄出現在第二頁

SELECT ID 
FROM table R 
ORDER BY rank desc limit 0,25; 

所有records`s等級爲0

我用限制設置PASE尺寸爲25 。 所以使用限制0,25,我得到第一頁; 使用限制25,25,我得到第二頁。

問題是,一個記錄出現在兩頁中。

我想這是一個與MySQL的錯誤。 我的mysql的版本是5.6.24。

任何人都可以幫助我嗎?

+0

*「所有記錄的等級爲0」。* - 當您按順序排列時,沒有獨特的記錄順序。如果表更新或壓縮(或從備份恢復數據後),即使「LIMIT 0,25」也可以在不同的執行中返回不同的行。 – axiac

+0

如果所有記錄等級爲0.那麼,爲什麼Order By? –

+0

但我的桌子從來沒有更新過,也沒有壓縮過,它沒有變化。 因此,在每次執行中結果不能保證一致? – mascure

回答

1

所有records`s等級爲0

還有就是當你ORDER BY rank記錄中沒有任何獨特的順序。即使LIMIT 0,25可以在不同的執行情況下返回不同的行(如果表已更新或壓縮(或從備份恢復數據後),並且沒有錯誤。

使用ORDER BY rank DESC, ID DESC,確保等級相等的行始終以相同的順序返回。

我加了ID DESC以獲得最近的行。如果表格包含存儲最後修改日期的列,則使用它而不是ID。或者創建另一個更適合您的應用程序的排序規則。

相關問題