Mysql 基于行的where子句中的条件';身份证

Mysql 基于行的where子句中的条件';身份证,mysql,sql,select,conditional-statements,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

我对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)中


谢谢你的帮助

您可以使用
以及
的组合

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))

您可以结合使用
以及

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))

这就是我所想的,但是现在如果我有第三个条件,适用于id=1和id=2,3,4,比如生日=1990年,那该怎么办呢。我不知道你可以把类似的条件放在where后面,然后再添加更具体的条件。谢谢你的帮助!这就是我所想的,但是现在如果我有第三个条件,适用于id=1和id=2,3,4,比如生日=1990年,那该怎么办呢。我不知道你可以把类似的条件放在where后面,然后再添加更具体的条件。谢谢你的帮助!