通配符可用于替代字符串中的任何其他字符。在 SQL 中,通配符与 SQL LIKE 操作符一起使用。SQL 通配符用于搜索表中的数据。
通配符 | 描述 |
---|---|
% | 替代 0 个或多个字符 |
_ | 替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist 或 [!charlist] | 不在字符列中的任何单一字符 |
示例:
//查询所有Name以GK开头的数据
select * from Persons where Name like 'GK%';
搭配以上通配符可以让LIKE命令实现多种技巧:
1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
4、LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
5、LIKE'[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson。
6、LIKE'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
7、LIKE'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。
ESCAPE 关键字定义转义符:
转义符置于通配符之前时,该通配符就解释为普通字符
#要搜索一个字符串"g_",如果直接like "g_",那么"_"的作用就是通配符,而不是字符。
#我们会查到比如"ga","gb","gc",而不是我们需要的"g_". 用LIKE'gs_' ESCAPE 's' 's'表示特殊用法标志。
SELECT * FROM Persons WHERE Name LIKE 'gs_' ESCAPE 's'
#搜索在任意位置包含字符串5%的字符串:前后两个%作为通配符使用,中间的%经过ESCAPE 转义,作为普通字符使用
WHERE Name LIKE '%5/%%' ESCAPE '/'