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

时间:2018-08-07 14:56:46

标签: php mysql sql

我尝试仅在content> 0时显示结果

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

如果我尝试添加查询

WHERE getCount > 0

我会遇到错误

  

“ where子句”中的未知列“ getCount”

1 个答案:

答案 0 :(得分:3)

在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需要至少一个匹配项。