似乎无法实现这一目标。如果计数为null,我想将其设置为零...否则将其设置为计数。我在我的代码的另一部分添加了多个计数,所以当我这样做时我不能有空值。
$ table =" ...
LEFT JOIN
(SELECT user_id, IF(count(user_id) = '(null)',0,count(user_id)) as t1count
FROM screenshot_logs
GROUP BY user_id) as t_screenshots
on t_screenshots.user_id = users.user_id
...
&#34 ;;
答案 0 :(得分:4)
在外部查询中,您可以使用 NULL
功能将IFNULL()
替换为零,例如
SELECT ...
, IFNULL(v.t1count,0) AS t1count
FROM ...
LEFT
JOIN ( SELECT ... AS t1count
...
) v
ON ...
外部查询返回的NULL不是来自内联视图查询。 NULL是" no match"的结果。被LEFT [OUTER] JOIN
操作找到。
如果您在外部查询中的其他表达式中引用 v.t1count
,则可以将这些引用替换为 NULLIF(v.t1count,0)
。
答案 1 :(得分:1)
聚合COUNT()将始终返回一个值。
答案 2 :(得分:-3)
您不希望在其中使用=
,因为null对所有内容都是!=
。试试ifNull()
功能。
http://dev.mysql.com/doc/refman/4.1/en/control-flow-functions.html#function_ifnull