gpt4 book ai didi

MySQL LIMIT 0,15 其中 15 是 parent_ids 的数量,不是 child

转载 作者:可可西里 更新时间:2023-11-01 06:37:50 27 4
gpt4 key购买 nike

我有一张表,我正在尝试为 ajax 分页获取评论。

你可以在这里看到一个 SQLFiddle:

http://sqlfiddle.com/#!2/5d36a/1

但基本上,如果没有 0,15LIMIT,它会按预期工作:

例如所有子评论都将与父评论一起显示/显示在父评论下方。

当我引入LIMIT 时问题就来了。在上面的例子中,它会获取 15 条评论,但是因为第 16 条评论是 id=6 的评论的子评论,所以它不会被返回。如果将其更改为 LIMIT 0,16,它将正确返回。

基本上我一次只想返回 0,15 个父评论,但不限制子评论。

有人告诉我尝试一个临时表,但后来有人告诉我它可能更简单(并且只使用一个带有内部选择的连接),但我有点困惑。

最佳答案

您可以使用以下查询使其工作:

SELECT 
comment.id,
comment.deleted,
comment.comment,
comment.user_id,
comment.created,
comment.parent_id,
s.id as sid,
s.user_id submissionUserId,
u.username,
u.photo AS userPhoto
FROM (SELECT c.*
FROM submissions_comments AS c
WHERE c.parent_id IS NULL
ORDER BY c.created DESC
LIMIT 0, 15) AS base
LEFT JOIN submissions_comments AS comment ON (
comment.parent_id = base.id
OR comment.id = base.id
)
LEFT JOIN users u ON comment.user_id = u.id
LEFT JOIN submissions s ON comment.submission_id = s.id
WHERE base.deleted = 0
ORDER BY base.created DESC

您可以看到它的实际效果:http://sqlfiddle.com/#!2/6d90f5/1

但我不知道它在性能方面是否有效。

它主要做的是:

  • 在子查询(或内部查询)中抓取前 15 个父评论
  • 对于每个获取 child parent 的副本

关于MySQL LIMIT 0,15 其中 15 是 parent_ids 的数量,不是 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25277403/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com