基于行的id的where子句中的条件

时间:2016-11-03 19:47:00

标签: mysql sql select conditional-statements

我对MySQL很陌生,但我想知道如何执行以下操作:

SELECT name from table 
if the id=1 then SELECT name WHERE '%first%'

else if the id in (2,3,4) then SELECT name

基本上,如果id为1,我想检查名称中的字符串“first”,如果id为2,3或4,则不检查任何字符串。有一种简单的方法可以做到这一点?我只找到了IF函数但不能使用2个条件。此外,该表不仅仅是id 1,2,3,4所以我不能只说别的;我仍然需要检查ID是否在(2,3,4)。

感谢帮助!

1 个答案:

答案 0 :(得分:3)

您可以使用andor的组合。

SELECT name from table 
where (id=1 and name like '%first%') 
or id in (2,3,4)

编辑:基于OP的评论,还有一个应该应用于id 1,2,3,4的条件

SELECT name from table 
where birthyear=1990 
and ((id=1 and name like '%first%') or id in (2,3,4))