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

1. 背景

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

2.SQL中的通配符

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

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

3.实例

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

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

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

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

期望结果:

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

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

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

期望结果:

ID name age sex address
3 王五 19 湖北省武汉市汉阳区
3.3.使用 _ 通配符

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

SELECT * FROM Persons WHERE name LIKE '_六'

期望结果:

ID name age sex address
4 赵六 22 湖北省黄冈市麻城市
3.4.使用 [charlist]通配符

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

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

期望结果:

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

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

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

期望结果:

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

4.特殊字符的查询

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

5.1默认转义
SELECT * FROM table1 WHERE cloum1 LIKE 'p\_%';
5.2使用ESCAPE关键字定义转义符
SELECT * FROM table1 WHERE cloum1 LIKE 'p/_%'  ESCAPE  '/';
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SQL SELECT 语句 一、查询SQL SELECT 语法 (1)SELECT 列名称 FROM 表名称 (2...
    有钱且幸福阅读 5,578评论 0 33
  • 学习web安全足足有一个半月有余,之前学的是前端,也会一点python。。好吧差不多忘了。常规工具算是熟悉基本...
    一叶红尘哦哟阅读 3,399评论 4 92
  • **SQL TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说,TOP 子句是...
    廖马儿阅读 3,205评论 1 46
  • 1.得人心者得天下,通人性者得人心! 单一思维的人,只能单纯地活着。 “好人”为什么总是上当受骗? 就是因为“好人...
    智囊团阅读 186评论 0 0
  • 错过这种东西很有趣,这是一种要过了一段时间,你再回想或发生了一些事情提醒你过去曾经有过这么的一件事,你那一刻才猛然...
    行走的文阅读 998评论 0 4