mysql - 物化路径按日期+路径排序

标签 mysql materialized-path-pattern

我有带有注释的数据库(具体化路径)(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

Bigger pic

最佳答案

您只需找到第一个点之后的部分即可。

然后您在第一部分之前按 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/

相关文章:

php - urlencode 问题

PHP排序脚本

PHP 用我的案例显示数据

PostgreSQL ltree- vs 树模块 vs 整数/字符串数组或字符串分隔路径

mysql - 操作数在 mysql 中应该有 1 列

MySQL 5.6 : Access denied for user 'root' @ 'localhost' when password contains backslash

json - 分层 JSON 对象的 PostgreSQL 物化路径/Ltree

python - 声明式 SQLAlchemy 中的具体化路径关系

tree - Riak 存储树结构