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