仅限具有特定编号的行

时间:2015-02-23 16:57:05

标签: mysql sql

对不起标题,因为我没有经验,所以我很难找到合适的头衔。

所以我有这个查询来获取特定主题的所有评论。 现在,对于我的分页,我想将其限制为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。这就是我想要的。

1 个答案:

答案 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
相关问题