对不起标题,因为我没有经验,所以我很难找到合适的头衔。
所以我有这个查询来获取特定主题的所有评论。 现在,对于我的分页,我想将其限制为20行,但仅适用于pid(parent_id)为零的帖子。
SELECT *, c.id AS cid, u.id AS userid
FROM comments c
INNER JOIN users u ON u.id = c.uid
WHERE c.tid = :id ORDER BY c.posted ASC LIMIT 20
如何在不删除pid = 1的每一行的情况下将帖子限制为20 WHERE pid = 0?
如果我添加:
WHERE c.tid = :id AND c.pid = 0
我会在没有pid的情况下得到所有评论。
因此,例如,它显示100条评论,但只有20条评论在数据库中有pid = 0
。这就是我想要的。
答案 0 :(得分:0)
可以使用联合来获取这两个集合:
SELECT *, c.id AS cid, u.id AS userid
FROM comments c
INNER JOIN users u ON u.id = c.uid
WHERE c.tid = :id
AND pid != 0
ORDER BY c.posted ASC
LIMIT // whatever limit you want here
UNION
SELECT *, c.id AS cid, u.id AS userid
FROM comments c
INNER JOIN users u ON u.id = c.uid
WHERE c.tid = :id
AND pid = 0
ORDER BY c.posted ASC
LIMIT 20