[英]How to handle division by 0 for select statements?
我這樣做
$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
)";
這將用NULL
替換0
值 - 因此除法將返回NULL
而不是錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.