使用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。
任何人都可以帮助我吗?
答
所有records`s等级为0
还有就是当你ORDER BY rank
记录中没有任何独特的顺序。即使LIMIT 0,25
可以在不同的执行情况下返回不同的行(如果表已更新或压缩(或从备份恢复数据后),并且没有错误。
使用ORDER BY rank DESC, ID DESC
,确保等级相等的行始终以相同的顺序返回。
我加了ID DESC
以获得最近的行。如果表格包含存储最后修改日期的列,则使用它而不是ID
。或者创建另一个更适合您的应用程序的排序规则。
*“所有记录的等级为0”。* - 当您按顺序排列时,没有独特的记录顺序。如果表更新或压缩(或从备份恢复数据后),即使“LIMIT 0,25”也可以在不同的执行中返回不同的行。 – axiac
如果所有记录等级为0.那么,为什么Order By? –
但我的桌子从来没有更新过,也没有压缩过,它没有变化。 因此,在每次执行中结果不能保证一致? – mascure