必知必会-第八章

这章主要介绍了如何使用通配符和LIKE操作符进行过滤数据。

这里先学习两个概念:

  • 通配符(wildcard):用来匹配值的一部分的特殊字符
  • 搜索模式(search pattern):由字面值、通配符或者二者的组合构成的搜索条件
LIKE操作符

在搜索子句中必须使用LIKE操作符。
严格来说LIKE并不是操作符,而是谓词(predicate),但是最终结果都是相同的。了解即可,以免在文档中看到不知所措。

%通配符

最长使用的通配符就是‘%’了,在搜索串中,%表示任何字符出现了任意次。
比如,我想找到address表中地址以‘47’开头的地址。


必知必会-第八章_第1张图片
image.png

再比如,我想找到address表中地址以‘street’结尾的地址。


必知必会-第八章_第2张图片
image.png

再再比如,我想查找包含‘Mosul’的地址。
必知必会-第八章_第3张图片
image.png

通过上面3个例子可以看出:
%通配符在字符str后面,就表示以str开头的内容。
%通配符在字符str前面,就表示以str结束的内容。
str两侧都有%,就表示包含str的内容。

注意:我们搜索的条件是‘mosul’,但是查询出来的结果中是'Mosul',这说明匹配是不区分大小写的。
当然这是mysql的默认配置,这是可以在mysql中配置中改变的,至于怎么更改配置,暂时不知道。

%还有一种比较奇怪的用法,就是放在字符串中间,str1%str2。
比如查找以‘2’开头,以‘e’结尾的地址。


必知必会-第八章_第4张图片
image.png

再次注意:%通配符不能匹配NULL。

_通配符

'_'只能匹配单个字符,比如,查询以‘12’开头的3位address_id:


必知必会-第八章_第5张图片
image.png

_只能匹配一个字符,不能多也不能少,只有一个,一个!!

书中提到的使用通配符的技巧

虽然通配符很有用,但是通配符的搜索处理要比其他搜索花费更多的时间,性能较低。

  • 不能过度使用通配符,如果其他操作可以完成就不使用通配符。
  • 除非必要,尽量不要把通配符放在搜索串的开始,因为这样是最慢的
  • 注意通配符的位置,放错了就不能反悔期望的数据

第8章,over,睡觉!

你可能感兴趣的:(必知必会-第八章)