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

Php 显示第一个子句值,然后显示第二个子句值,php,mysql,Php,Mysql,我试图让这个查询首先显示where子句的值,如果第一个where子句为空,则转到第二个where子句。如果两个都不是空的,它应该只查找第一个子句 SELECT id FROM mdl_course_categories Where id = '{Section}' or id = '{semester}' 这段代码同时显示数据部分和学期,但我希望它先显示数据部分,然后显示学期。有什么想法吗?然后您需要添加一个order by子句: order by (id = '{Section}') de

我试图让这个查询首先显示where子句的值,如果第一个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

编辑:

如果您只有一行,其中该行将是第一个匹配,然后是第二个匹配,那么只需在
排序依据
之后添加一个
限制

order by (id = '{Section}') desc,
         (id = '{Semester}') desc
limit 1;

一种方法是分别选择这些


另外,如果您正在使用id,为什么要选择它

你想把结果分类吗?您是否尝试添加一个
ORDER BY
子句?否,我只想显示一个where子句的值如果节可用,则不查找Semester id是什么?文本字段?它怎么能同时拥有这两个值呢?所以对结果进行排序,然后添加一个
LIMIT
子句?我正在使用它来进行ajax重载,以更改值选择类型字段