SQL IN语句使用类似语法?

Sta*_*low 2 sql t-sql sql-server

我想做这样的事情,即在in子句中使用通配符:

SELECT * FROM mytable WHERE keywords IN ('%test%', '%testing%')
Run Code Online (Sandbox Code Playgroud)

这在SQL Server中不受支持....是否有其他方法可以实现它...

寻找以下的东西:

SELECT * FROM mytable WHERE keywords like '%test%' or keywords like '%testing%' or.....
Run Code Online (Sandbox Code Playgroud)

Sam*_*ron 8

不,只有我能想到的其他方式是加入临时表,但是你必须消除重复的行.

你的这个查询是非常低效的,因为它将无条件地进行表扫描.也许您应该考虑分离关键字或引入全文索引.

如果您想研究全文搜索,那么当您评估Sql Server全文解决方案时,我建议您查看一些重量级的重量,如sphinx或lucene.