在SQL Server中,我需要在列中搜索多个值,但我没有确切的值,所以我也需要使用通配符.
我当前的查询如下所示:
SELECT *
FROM table
WHERE fieldname in ( '%abc1234%',
'%cde456%',
'%efg8976%')
Run Code Online (Sandbox Code Playgroud)
这不会返回任何结果,但如果我搜索任何一个单独的值,我会找到它,所以我知道它们在那里.如果没有做多个OR,有几百个值有点笨拙,有没有办法做到这一点?
我也有兴趣知道为什么这个查询不起作用,因为没有%'的相同查询工作正常(除了只捕获几个完全匹配的小问题).
Joe*_*orn 14
看看使用全文索引.这应该做一个更好的工作与你的搜索,让你的"OR"的问题一点点更好的引导:
SELECT *
FROM table
WHERE CONTAINS(fieldname, '"abc1234" OR "cde456" OR "efg8976"')
Run Code Online (Sandbox Code Playgroud)
也可以看看:
http://www.simple-talk.com/sql/learn-sql-server/full-text-indexing-workbench/
| 归档时间: |
|
| 查看次数: |
51036 次 |
| 最近记录: |