我有需要搜索的值列表。
select *
from table
where fname in ('%abc%','%nnn%') or
lname in ('%abc%','%nnn%')
最好的方法是什么?我知道我们不能一起使用“LIKE”和“IN”。
答案 0 :(得分:3)
SELECT * FROM table WHERE fname LIKE '%abc%' OR fname LIKE '%nnn%' OR lname LIKE '%abc%' OR lname LIKE '%nnn%'
答案 1 :(得分:1)
如果您接受,这也是一种很好的方法,
select *
from table
where
fname in (select fname from table where fname like '%abc%' or fname like '%nnn%') or
lname in (select lname from table where lname like '%abc%' or lname like '%nnn%')
答案 2 :(得分:0)
您可以使用多个LIKE谓词与OR结合使用,或者您可以检查数据库系统是否提供REGEX功能。