显示第一个子句值,然后显示第二个子句值

时间:2013-07-14 18:18:45

标签: php mysql

我正在尝试让此查询首先显示where子句值,如果第一个where子句为空,则转到第二个。如果两者都不为空,则只应查找第一个子句。

SELECT id 
FROM mdl_course_categories
Where id = '{Section}' or id = '{semester}'

此代码显示数据部分和学期,但我希望它首先显示该部分,然后是学期。关于如何做的任何想法?

2 个答案:

答案 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?