寻找“&” SQL SERVER中的字符使用类似语句和通配符

时间:2014-12-11 09:45:35

标签: sql sql-server sql-server-2008

我需要找到'&'在一个字符串中。

SELECT * FROM TABLE WHERE FIELD LIKE ..&...

我们尝试过的事情:

SELECT * FROM TABLE WHERE FIELD LIKE '&&&'
SELECT * FROM TABLE WHERE FIELD LIKE '&\&&'
SELECT * FROM TABLE WHERE FIELD LIKE '&|&&' escape '|'
SELECT * FROM TABLE WHERE FIELD LIKE '&[&]&'

这些都不会在SQLServer中给出任何结果。 好吧有些给所有行,有些没有。

类似的问题不起作用或不够具体。

Find the % character in a LIKE query

How to detect if a string contains special characters?

一些旧的参考Server 2000

http://web.archive.org/web/20150519072547/http://sqlserver2000.databases.aspfaq.com:80/how-do-i-search-for-special-characters-e-g-in-sql-server.html

2 个答案:

答案 0 :(得分:10)

&不是SQL中的通配符,因此不需要转义。

在您要查找的值周围使用%

SELECT * FROM TABLE WHERE FIELD LIKE '%&%'

答案 1 :(得分:4)

您的语句不包含通配符,因此等同于WHERE FIELD = '&'

&不是SQL中的特殊字符,因此不需要进行转义。只需写下

WHERE FIELD LIKE '%&%'

搜索字段中某处包含&的条目

请注意,这将导致全表扫描,因为服务器无法使用任何索引。如果您键入WHERE FIELD LIKE '&%',服务器可以执行范围搜索以查找以&开头的所有条目。

如果您有大量数据并且无法再添加约束,则应考虑使用SQL Server的全文搜索来创建和使用FTS索引,并使用{{3}之类的谓词}或CONTAINS