所有分类
  • 所有分类
  • 其它

【MySQL从入门到精通】:关于常用like子句中通配符的总结

1️⃣前言

?知识点:

  • 什么是通配符?
  • 如何使用通配符?
  • 怎样使用LIKE操作符对数据进行复杂过滤?

?概念:

通配符(wildcard

  • 即:用来匹配值的一部分的特殊字符。

搜索模式(search pattern

  • 即:由字面值、通配符或两者组合构成的搜索条件。

2️⃣通配符

一般的,我们会通过操作符对数据进行筛选过滤或匹配,是针对已知值

不管是匹配一个还是多个值,测试大于还是小于已知值,或者检查某个范围的值,共同点是过滤中使用的值都是已知的。

但需要注意的是,有时我们会进行模糊匹配

类似在筛选商品时,我们会在搜索框里输入关键词‘华为’,这就能搜索商品中包含关键词的商品,这显然只能用通配符来实现,**利用通配符可创建比较特定数据的搜索模式。**比如上述例子中,我们可构造一个通配符搜索模式,找出商品名中任何位置出现‘华为’的商品。

下面就是通配符的介绍:

?%通配符

介绍

  • 百分号(%)通配符是最常使用的
  • like子句中,%表示任何字符出现任意次数。
  • %代表搜索模式中给定位置的0个、1个或多个字符。

?举例一:

  • 找出所有以 ‘海’ 起头的商品

  • 搜索模式–>'海%'
  • 含义–>检索任意以 ‘海’ 开头的词。%告诉MySQL接受‘’之后的任意字符

?举例二:

  • 匹配任何位置包含文本'e'的值

  • 搜索模式–>'%e%'
  • 含义–>检索任意包含 ‘e’ 的文本。不论它之前或之后出现什么字符。

?举例三:

  • 查询任意以i起头以o结尾的商品:

  • 搜索模式–>'i%o'
  • 含义–>检索任意以i起头以o结尾的所有商品:

?_通配符

介绍:

  • 下划线_通配符和百分号%通配符很类似
  • 不同在于,下划线通配符只能匹配单个字符
  • %能匹配0个字符不一样,_总是匹配一个字符

?举例一:

  • 查询四个字的商品,并且以纸巾结尾

  • 搜索模式–>'__纸巾'
  • 含义–>检索以’纸巾’结尾的四字商品,开头为任意两个字:

3️⃣小结

✔️回答前言:

什么是通配符?

  • 通配符是SQLWHERE子句中,有特殊含义的字符,例如:%_

如何使用通配符?

  • 在搜索子句select中利用like操作符操作通配符

怎样使用LIKE操作符对数据进行复杂过滤?

  • 根据要求,使用like子句组合通配符形成搜索模式,进而对数据进行模糊匹配。
    通配符是一种极重要且有用的搜索工具。

还一些点,我们应该注意:

  1. 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
  2. 除非绝对有必要,否则不要将通配符写在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。
  3. 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

备注:

文章参数书:《MySQL必知必会》

社交账号快速登录