我有带有注释的数据库(具体化路径)(mysql)。如果我选择所有带有“select * from comm where post_id=10 order by path ASC”的comm,我会收到按路径排序的帖子的评论,旧日期在顶部,新日期在底部。
那么,有没有办法在 disqus 中选择较新的内容?如果我只是“按路径 DESC 排序”-则分支会颠倒显示-这不是我想要的。 所以我需要按日期(顶部的新通讯)和路径进行排序。 谢谢。!
链接到更大的图片 https://drive.google.com/file/d/0BwIgYhO9h960ZTl4a24wNXFFQnM/view?usp=sharing
最佳答案
您只需找到第一个点之后的部分即可。
然后您在第一部分之前按 DESC 顺序,在最后一部分之后按 ASC 顺序。
SELECT * FROM comments
WHERE post_id=10
ORDER by substring_index(path, '.', 1) DESC,
path ASC
请注意,您的附件第三列中存在错误,颠倒了 9972 和 9974。
不知道在这种情况下,MySQL优化引擎是否使用path上设置的索引来对结果进行排序。在模型中添加一列应该会更有效。
关于mysql - 物化路径按日期+路径排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28513552/