计算行数,如果大于0,则返回结果

vc6uscn9  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(291)

我尝试只在内容>0时显示结果

SELECT actors.*, (SELECT count(*) FROM `content_actors`
                  WHERE content_actors.actor = actors.record_id) AS getCount
FROM actors

如果我尝试在查询中添加

WHERE getCount > 0

我会出错的
“where子句”中的未知列“getcount”

n9vozmp4

n9vozmp41#

在mysql中,可以使用 having 条款:

SELECT actors.*,
       (SELECT count(*) FROM `content_actors` WHERE content_actors.actor = actors.record_id) AS getCount
FROM actors
HAVING getCount > 0;

这是一个mysql扩展。
假设 actors.record_id 是唯一的(可能是主键),可以写为:

SELECT a.*, COUNT(*) as getCount
FROM actors a JOIN
     content_actors ca
     ON ca.actor = a.record_id
GROUP BY a.record_id;  -- assumes this is unique/primary key

不需要过滤,因为 JOIN 至少需要一个匹配项。

相关问题