1
我試圖做到這一點位的代碼:MySQL的分層IF語句
ORDER BY IF(j.groups IS NULL OR j.groups = '', IF(j.title IS NULL, i.title), j.groups)
英文:爲了通過j.groups第一,如果它存在,然後通過j.title如果eixsts,然後最後通過I.標題。但上面的工作並沒有解決。
我試圖做到這一點位的代碼:MySQL的分層IF語句
ORDER BY IF(j.groups IS NULL OR j.groups = '', IF(j.title IS NULL, i.title), j.groups)
英文:爲了通過j.groups第一,如果它存在,然後通過j.title如果eixsts,然後最後通過I.標題。但上面的工作並沒有解決。
試試這個:
ORDER BY IF(j.groups IS NULL OR j.groups = '', IFNULL(j.title, i.title), j.groups);
OR
ORDER BY COALESCE(j.groups, j.title, i.title);
OR
ORDER BY IF(j.groups IS NULL OR j.groups = '', IF(j.title IS NULL, i.title, 1), j.groups);
你忘了的其他屬於你內部IF
。試試這個:
ORDER BY IF(
j.groups IS NULL OR j.groups = '',
IF(
j.title IS NULL,
i.title,
j.title -- this was missing
),
j.groups
)
但我覺得這句法更可讀:
ORDER BY COALESCE(IF(j.groups = '', NULL, j.groups), j.title, i.title)
NULL應該放在第一位與否? –
你不應該有一個內部'IF'的else子句嗎? – Amadan