2010-03-25 81 views
1

我想从包含输入字符串中至少一个单词的一个表中获取所有记录。例如,输入参数=“堆栈溢出流”:SQL Server中的LIKE运算符

select * 
from sample 
where name like '%stack%' 
    or name like '%over%' 
    or name like '%flow%' 

如何寻找其中包含‘堆’或‘过’或‘流’的记录?

+1

什么问题? – 2010-03-25 04:50:13

+0

@codeka:我认为问题是“代码是什么?......怎么做?” – hallie 2010-03-25 04:51:37

+0

@hallie:我想我明白了,他希望能够将字符串“stack over flow”转换为SQL查询的代码,该查询将搜索包含“stack”*或*“over”*或*“flow”的任何名称。接下来的问题是什么语言? – 2010-03-25 04:54:49

回答

6

您提供的代码应该可以工作。但不要使用它。它将无法使用任何索引,因此可能会非常缓慢。查看全文索引和CONTAINS关键字。

+0

简而言之,如果启用了CLR,则可以使用正则表达式。 – 2010-03-25 05:13:16

+0

这听起来像只有一个输入参数,他需要解析,然后每个单词的喜欢。 – Kelsey 2010-03-25 05:15:04

+2

绝对正确。与通配符一样,第一个字符几乎总是一件坏事,因为它会强制执行表扫描并且全文索引会更好。 – HLGEM 2010-03-25 14:21:15