2013-07-14 81 views
0

我试图让这个查询首先显示where子句的值,如果第一个where子句是空的,去第二个。如果两者都不为空,则只应查找第一个子句。显示第一个子句的值,然后是第二个

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

此代码显示数据部分和学期,但我想先显示部分,然后是学期。任何想法如何做到这一点?

+0

你想对结果进行排序吗?你有没有试过添加'ORDER BY'子句? – eggyal

+0

不,我只是想显示只有一个where子句的值,如果部分可用,那么不要查找学期 –

+0

什么是id?一个文本字段?它怎么可能同时具有两个值? –

回答

1

然后,你需要添加一个order by条款:

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

在MySQL中,布尔真正被视为1和假为0

编辑:

如果你只有一个一排,其中行会的第一场比赛,然后第二个,则只需添加一个limitorder by后:

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

它的工作,但不是确切的我想要 –

+0

现在它运作良好thanx –

0

一种方法是分别选择那些。

P.S.你为什么选择身份证,如果你使用它赢在哪里?

相关问题