使用mysql命令,相同的记录出现在第二页

问题描述:

这是我的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

所有records`s等级为0

还有就是当你ORDER BY rank记录中没有任何独特的顺序。即使LIMIT 0,25可以在不同的执行情况下返回不同的行(如果表已更新或压缩(或从备份恢复数据后),并且没有错误。

使用ORDER BY rank DESC, ID DESC,确保等级相等的行始终以相同的顺序返回。

我加了ID DESC以获得最近的行。如果表格包含存储最后修改日期的列,则使用它而不是ID。或者创建另一个更适合您的应用程序的排序规则。