如果count值为null则将其设置为零 - sql select语句

时间:2014-05-12 20:51:06

标签: mysql sql count

似乎无法实现这一目标。如果计数为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 ;;

3 个答案:

答案 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()将始终返回一个值。

参考:Does COUNT(*) always return a result?

答案 2 :(得分:-3)

您不希望在其中使用=,因为null对所有内容都是!=。试试ifNull()功能。

http://dev.mysql.com/doc/refman/4.1/en/control-flow-functions.html#function_ifnull