我这样做
$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)。
有谁知道怎么做?
感谢。
答案 0 :(得分:3)
在你的情况下,最简单的改变可能就是:
$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
而不是错误。