【问题标题】:"Flexible" MySQL limit“灵活的” MySQL 限制
【发布时间】:2012-02-14 11:41:39
【问题描述】:

我有一个存放 cmets 的 mysql 表。 cmets 可以有子 cmets,但只能向下一级(有一个可选的“父”属性,评论的父级不能有自己的父级)。我想对这样的数据进行分页,像这样:

取第一个,比如 10 个顶级 cmets(带有页面偏移),以及它们的子 cmets(如果可用)。

显而易见的解决方案是获取 10 个 cmets,然后使用 IN 子句获取它们的子 cmets,但我觉得这是错误的方法(或者至少有更好的方法)。

有没有更好的方法来实现这一点?

【问题讨论】:

    标签: python mysql sql django


    【解决方案1】:

    我认为 IN 子查询可能是你最好的选择:

    SELECT whatever FROM comments_table c
    WHERE c.id IN (SELECT id FROM comments_table c2 WHERE some_criteria_here LIMIT 10)
    OR c.parent_id IN (SELECT id FROM comments_table c2 WHERE some_criteria_here LIMIT 10)
    

    【讨论】:

    • 是的,这是我最初的想法,但我希望有更好的解决方案
    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    相关资源
    最近更新 更多