这是我的sql:
SELECT ID
FROM table R
ORDER BY rank desc limit 0,25;
所有记录的排名均为0。
我使用限制将pase size设置为25。 所以使用限制0,25,我得到了第一页; 使用限制25,25,我得到第二页。
问题是,一个记录出现在两个页面中。我猜这是mysql的一个错误。 我的mysql版本是5.6.24。
任何人都可以帮助我吗?
答案 0 :(得分:1)
所有记录的排名均为0。
ORDER BY rank
时没有唯一的记录顺序。如果更新或压缩表(或从备份恢复数据后),即使LIMIT 0,25
也可以在不同的执行中返回不同的行,并且没有错误。
使用ORDER BY rank DESC, ID DESC
,确保排名相等的行始终以相同的顺序返回。
我添加了ID DESC
以获取最新的行。如果表包含存储上次修改日期的列,则使用它而不是ID
。或者创建另一个更适合您应用程序的排序规则。