什么是SQL的所有特殊字符的完整列表(我对SQL Server感兴趣,但其他的也很好)LIKE子句?
例如
SELECT Name FROM Person WHERE Name LIKE '%Jon%'
SQL Server:
%
_
[说明符]例如[az]
[^符]
ESCAPE子句例如%30!%%'ESCAPE'!' 将评估30%为真
'人物需要逃脱'例如他们变得他们'
MySQL的:
%
- 任何零个或多个字符的字符串.
_
- 任何单个字符
ESCAPE子句例如%30!%%'ESCAPE'!' 将评估30%为真
甲骨文:
%
- 任何零个或多个字符的字符串.
_
- 任何单个字符
ESCAPE子句例如%30!%%'ESCAPE'!' 将评估30%为真
SYBASE
%
_
[说明符]例如[az]
[^符]
进展:
%
- 任何零个或多个字符的字符串.
_
- 任何单个字符
参考指南 [PDF]
PostgreSQL的:
%
- 任何零个或多个字符的字符串.
_
- 任何单个字符
ESCAPE子句例如%30!%%'ESCAPE'!' 将评估30%为真
ANSI SQL92:
%
_
仅在指定时才使用ESCAPE字符.
PostgreSQL还有SIMILAR TO
运算符,它添加了以下内容:
[specifier]
[^specifier]
|
- 两种选择中的任何一种
*
- 重复前一项零次或多次.
+
- 重复前一项一次或多次.
()
- 将项目组合在一起
我们的想法是将这个社区Wiki作为一个"一站式商店".
对于SQL Server,请访问http://msdn.microsoft.com/en-us/library/ms179859.aspx:
%任何零个或多个字符的字符串.
WHERE title LIKE '%computer%'
在书名的任何地方找到所有带有"计算机"一词的书名.
_任何单个字符.
WHERE au_fname LIKE '_ean'
找到以ean结尾的所有四个字母的名字(Dean,Sean等).
[]指定范围内的任何单个字符([af])或set([abcdef]).
WHERE au_lname LIKE '[C-P]arsen'
查找作者姓氏以arsen结尾,并以C和P之间的任何单个字符开头,例如Carsen,Larsen,Karsen等.在范围搜索中,范围中包含的字符可能会根据排序规则的排序规则而有所不同.
[^]任何不在指定范围([^ af])或集合([^ abcdef])内的单个字符.
WHERE au_lname LIKE 'de[^l]%'
所有作者姓氏以de开头,后面的字母不是l.
ANSI SQL92:
%
_
仅在指定时才使用ESCAPE字符.
令人失望的是,许多数据库不遵守标准规则并添加额外字符,或者在缺少时错误地启用默认值为'\'的ESCAPE.就像我们没有'\'已经有足够的麻烦了!
在这里编写与DBMS无关的代码是不可能的,因为你不知道你将要逃脱哪些角色,标准说你无法逃脱不需要转义的东西.(见第8.5节/一般规则/ 3.a.ii.)
谢谢SQL!gnnn
您应该补充一点,您必须在SQL Server中添加额外的'以逃避exising':
史密斯的 - >史密斯的