我正在尝试让此查询首先显示where子句值,如果第一个where子句为空,则转到第二个。如果两者都不为空,则只应查找第一个子句。
SELECT id
FROM mdl_course_categories
Where id = '{Section}' or id = '{semester}'
此代码显示数据部分和学期,但我希望它首先显示该部分,然后是学期。关于如何做的任何想法?
答案 0 :(得分:1)
然后你需要添加一个order by
子句:
order by (id = '{Section}') desc,
(id = '{Semester}') desc
在MySQL中,布尔值true视为1
,false视为0
。
编辑:
如果您只有一行,其中行将是第一个匹配,然后是第二个匹配,那么只需在limit
后添加order by
:
order by (id = '{Section}') desc,
(id = '{Semester}') desc
limit 1;
答案 1 :(得分:0)
一种方法是分别选择它们。
P.S。如果您使用它赢取WHERE,为什么选择id?