1️⃣前言
?知识点:
- 什么是通配符?
- 如何使用通配符?
- 怎样使用
LIKE操作符
对数据进行复杂过滤?
?概念:
通配符(wildcard)
- 即:用来匹配值的一部分的特殊字符。
搜索模式(search pattern)
- 即:由字面值、通配符或两者组合构成的搜索条件。
2️⃣通配符
一般的,我们会通过操作符对数据进行筛选过滤或匹配,是针对已知值!
不管是匹配一个还是多个值,测试大于还是小于已知值,或者检查某个范围的值,共同点是过滤中使用的值都是已知的。
但需要注意的是,有时我们会进行模糊匹配
类似在筛选商品时,我们会在搜索框里输入关键词‘华为’,这就能搜索商品中包含关键词的商品,这显然只能用通配符来实现,**利用通配符可创建比较特定数据的搜索模式。**比如上述例子中,我们可构造一个通配符搜索模式,找出商品名中任何位置出现‘华为’的商品。
下面就是通配符的介绍:
?%通配符
✨介绍
- 百分号(
%
)通配符是最常使用的。- 在
like
子句中,%
表示任何字符出现任意次数。%
代表搜索模式中给定位置的0个、1个或多个字符。
?举例一:
- 找出所有以 ‘海’ 起头的商品
- 搜索模式–>:
'海%'
- 含义–>检索任意以 ‘海’ 开头的词。
%
告诉MySQL
接受‘海’之后的任意字符
?举例二:
- 匹配任何位置包含文本
'e'
的值
- 搜索模式–>:
'%e%'
- 含义–>检索任意包含 ‘e’ 的文本。不论它之前或之后出现什么字符。
?举例三:
- 查询任意以
i
起头以o
结尾的商品:
- 搜索模式–>:
'i%o'
- 含义–>检索任意以
i
起头以o
结尾的所有商品:
?_通配符
✨介绍:
- 下划线
_
通配符和百分号%
通配符很类似- 不同在于,下划线通配符只能匹配单个字符!
- 与
%
能匹配0个字符不一样,_
总是匹配一个字符!
?举例一:
- 查询四个字的商品,并且以纸巾结尾
- 搜索模式–>:
'__纸巾'
- 含义–>检索以’纸巾’结尾的四字商品,开头为任意两个字:
3️⃣小结
✔️回答前言:
什么是通配符?
- 通配符是
SQL
的WHERE子句
中,有特殊含义的字符,例如:%
,_
如何使用通配符?
- 在搜索子句
select
中利用like
操作符操作通配符
怎样使用LIKE操作符
对数据进行复杂过滤?
- 根据要求,使用
like
子句组合通配符形成搜索模式,进而对数据进行模糊匹配。
通配符是一种极重要且有用的搜索工具。
还一些点,我们应该注意:
- 不要过度使用通配符。(如果其他操作符能达到相同的目的,应该使用其他操作符。)
- 除非绝对有必要,否则不要将通配符写在搜索模式的开始处。(把通配符置于搜索模式的开始处,搜索起来是最慢的。)
- 仔细注意通配符的位置。(如果放错地方,可能不会返回想要的数据。)
备注:
文章参数书:《MySQL必知必会》