Php 如何处理select语句的除法0?

Php 如何处理select语句的除法0?,php,mysql,divide-by-zero,Php,Mysql,Divide By Zero,我这样做 $query4 = "( SELECT count(*) FROM checklist c JOIN task AS t ON t.id = c.task_id AND t.active=1 WHERE c.placement_id = m.id ) / ( SELECT cou

我这样做

    $query4 = "(
                 SELECT count(*) 
                 FROM checklist c
                 JOIN task AS t ON t.id = c.task_id AND t.active=1
                 WHERE c.placement_id = m.id
               ) / (
                 SELECT count(*) 
                 FROM task 
                 WHERE active = 1
               )";
在php中,我使用了一个更大的sql字符串。问题是上面的第二个选择,可能是0。如果是0,我希望除法自动变成1(比如将整个
query4
变成1)

有人知道怎么做吗


谢谢。

在您的情况下,最简单的更改可能是:

$query4 = "(
             SELECT count(*) 
             FROM checklist c
             JOIN task AS t ON t.id = c.placement_id AND t.active=1
             WHERE c.placement_id = m.id
           ) / (
             SELECT (case when count(*) > 0 then count(*) end)
             FROM task 
             WHERE active = 1
           )";
这会将
0
值替换为
NULL
——因此除法将返回
NULL
,而不是错误