我试图让这个查询首先显示 where 子句的值,如果第一个 where 子句为空,则转到第二个。如果两者都不为空,它应该只查找第一个子句。
SELECT id
FROM mdl_course_categories
Where id = '{Section}' or id = '{semester}'
此代码同时显示数据部分和学期,但我希望它先显示部分,然后显示学期。关于如何做的任何想法?
然后你需要添加一个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;
一种方法是分别选择它们。
PS 如果你使用它,为什么要选择 id win WHERE?