如何解决按修改日期订购时的SQL分页
| 我有一堆记录要按反向修改日期进行分页。据我所知,使用简单的查询会提取相同的记录子集,然后仅按日期对记录进行排序。 像这样:SELECT * FROM items WHERE status=\'1\' ORDER BY modified_date DESC LIMIT start,count
索引对我有帮助吗?还是我将不得不找出某种方法来编写此代码,或者添加一列以某种相反的方式跟踪Modifyed_date?
解决方法
索引(状态,modified_date)可能会有所帮助。请参阅索引dos和dons。
, 这个查询对我来说很好。它执行以下操作:
查找带有
status = 1
的记录
以modified_date DESC
订购
从start
返回count
条记录
因此,如果需要显示第一页,则应设置start=0
。第二页是ll6ѭ,第三页是start=2*count
,依此类推。
还是与此相关的性能问题?
, 它是一个hack,我没有尝试过,因为我无法重现您的问题,并且可能无法很好地运行,但这可能对您有用
SELECT *
FROM (SELECT *
FROM items
WHERE status = \'1\'
ORDER BY modified_date desc ) t
LIMIT START,COUNT
, 您可以添加一个包含“ 9”的列,然后在其上设置auto-update属性,以便对其进行正确更新。最后,为该列创建一个索引。您的查询将如下所示:
SELECT *
FROM items
WHERE status=\'1\'
ORDER BY \'timestamp\' DESC
LIMIT start,count
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。