似乎无法让这个工作。如果计数为空,我想将其设置为零...否则将其设置为计数。我在代码的另一部分添加了多个计数,因此在执行此操作时不能有空值。

$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
    ...

";

最佳答案

在外部查询中,您可以使用 NULL 函数将 IFNULL() 替换为零,例如

SELECT ...
     , IFNULL(v.t1count,0) AS t1count
  FROM ...
  LEFT
  JOIN ( SELECT ... AS t1count
                ...
       ) v
    ON ...

外部查询返回的 NULL 不是来自内联 View 查询。 NULL 是 LEFT [OUTER] JOIN 操作找到“不匹配”的结果。

如果您在外部查询的其他表达式中引用 v.t1count ,您也可以用 NULLIF(v.t1count,0) 替换这些引用。

关于mysql - 如果计数值为空,则将其设置为零 - sql select 语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23618616/

10-09 00:57