SQL 通配符与特殊字符的查询

1. 背景

在搜索数据库中的数据时,我们经常会用到模糊查询,在模糊查询中,我们需要了解一些通配符。

2.SQL中的通配符

在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符:

通配符描述
%替代一个或多个字符
_仅替代一个字符
[charlist]字符列中的任何单一字符
[^charlist]或者[!charlist]不在字符列中的任何单一字符

3.实例

原始的表 (用在例子中的):
Persons 表:

IDnameagesexaddress
1张三18上海市浦东新区三林镇三林路158号666
2李四20上海市黄浦区中山南路888号
3王五19湖北省武汉市汉阳区
4赵六22湖北省黄冈市麻城市
3.1.使用 % 通配符

现在,我们希望从上面的 “Persons” 表中选取居住在以 “上海市” 开始的城市里的人:我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE address LIKE '上海市%'

期望结果:

IDnameagesexaddress
1张三18上海市浦东新区三林镇三林路158号666
2李四20上海市黄浦区中山南路888号
3.2.使用 % 通配符

接下来,我们希望从 “Persons” 表中选取居住在包含 “武汉市” 的人。我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE address LIKE '%武汉市%'

期望结果:

IDnameagesexaddress
3王五19湖北省武汉市汉阳区
3.3.使用 _ 通配符

现在,我们希望从上面的 “Persons” 表中选取名字的第一个字符之后是 “六” 的人。我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE name LIKE '_六'

期望结果:

IDnameagesexaddress
4赵六22湖北省黄冈市麻城市
3.4.使用 [charlist]通配符

现在,我们希望从上面的 “Persons” 表中选取名字以"张",“王” 的人。我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE name  like ‘[张王]%’

期望结果:

IDnameagesexaddress
1张三18上海市浦东新区三林镇三林路158号666
3王五19湖北省武汉市汉阳区
3.5.使用 [!charlist]通配符

现在,我们希望从上面的 “Persons” 表中选取名字不以"张",“王” 的人。我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE name  like ‘[!张王]%’

期望结果:

IDnameagesexaddress
2李四20上海市黄浦区中山南路888号
4赵六22湖北省黄冈市麻城市

4.特殊字符的查询

在模糊查询中,可能我们所需要匹配的字符就是特殊字符,例如:p_% 以p_开头的字符

4.1默认转义
SELECT * FROM table1 WHERE cloum1 LIKE 'p\_%';
4.2使用ESCAPE关键字定义转义符
SELECT * FROM table1 WHERE cloum1 LIKE 'p/_%'  ESCAPE  '/';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值