Mysql 基于行的where子句中的条件';身份证
我对MySQL非常陌生,但我想知道如何做以下事情: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
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后面,然后再添加更具体的条件。谢谢你的帮助!