我对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)。
感谢帮助!
答案 0 :(得分:3)
您可以使用and
和or
的组合。
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))