我需要找到'&'在一个字符串中。
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
答案 0 :(得分:10)
答案 1 :(得分:4)
您的语句不包含通配符,因此等同于WHERE FIELD = '&'
。
&
不是SQL中的特殊字符,因此不需要进行转义。只需写下
WHERE FIELD LIKE '%&%'
搜索字段中某处包含&
的条目
请注意,这将导致全表扫描,因为服务器无法使用任何索引。如果您键入WHERE FIELD LIKE '&%'
,服务器可以执行范围搜索以查找以&
开头的所有条目。
如果您有大量数据并且无法再添加约束,则应考虑使用SQL Server的全文搜索来创建和使用FTS索引,并使用{{3}之类的谓词}或CONTAINS