MySQL必知必会3

通配符过滤数据

LIKE操作符

假设要搜寻的数据只需要有其中的一部分即可,即要搜索文本中带有anvil的字符就,可以使用通配符。

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

搜索模式:有字面值,通配符或两者结合组成的搜索条件。

百分号(%)通配符

%表示任意字符出现的次数。

在这里插入图片描述

这个例子中就搜索所有以jet开头的product,并且不管jet后面有多少字符。

在这里插入图片描述

这个例子检索含有anvil的product,并且不管anvil前面和后面有多少字符。

%也可以检索中间,例如我们要检索所有以s开头e结尾的product。

在这里插入图片描述

如果只有一个%会怎么样?

在这里插入图片描述

会发现,这会搜索所有的product。

下划线(_)通配符

下划线通配符的作用和%类似,但_只检索单个字符。

在这里插入图片描述

这个例子中_匹配到1和2 但.5没有被匹配到。

同时要注意的是_和ton之间有没有空格要根据原来的prod_name有没有空格,毕竟空格也是一个字符。

在这里插入图片描述

没有空格可能就检索不出数据。但%不会出现这种情况。

下面这几个例子体现了_与%的区别。

在这里插入图片描述

正则表达式

介绍

正则表达式用来检索匹配文本中特殊的串(即字符的集合)。

使用正则表达式
基本字符匹配

从一个简单的例子开始,下面检索prod_name中包含文本1000的列。

在这里插入图片描述

除了LIKE被REGEXP替换之外,这个例子和之前的LIKE子句很相似。

REGEXP就是正则表达式的符号。

这个命令检索含有1000的列。

在看下一个例子

在这里插入图片描述

这个例子却检索出两个列,这是因为 ‘ . '操作符,这个是正则表达式里一个重要的字符,可以与任意字符匹配。

但如果换成LIKE就不会有检索结果。

在这里插入图片描述

进行 or 匹配

为进行搜索两个串之一,可以使用 | 操作符。

在这里插入图片描述

这个例子检索含有文本1000或2000的列,但要注意不能1000和|之间不能有空格,如果是’1000 | 2000’,就会检索含有文本 ‘1000 ’, ‘ 2000’的列,1000后面有个空格,2000前面有个空格。

检索结果也会发生变化。

在这里插入图片描述

这个只有一列是因为,只含有‘空格’+ ‘2000’的列却不含有‘1000’ + ‘空格’的列。

可以使用两个以上的条件,如‘1000|2000|3000’就检索含有1000或2000或3000的列。

匹配几个字符之一

如果想匹配特定的字符,且是单一字符可以使用[]括起来的字符来完成。

在这里插入图片描述

这个正则表达式[123] ton 表示匹配1或2或3,即1, 2, 3中的一个。

事实上这个是[1|2|3]的缩写,但我们不能用’1|2|3 ton’,因为这会被认为检索含有’1’或’2’或’3 ton’的列。

匹配范围

集合可以用来定义要匹配的一个或多个字符。

如[0123456789]可以写为[0-9],但要注意前面的数字要小于后面的。[a-z]匹配所有字母。

在这里插入图片描述

这个例子匹配含有1-5之间的任意数字的列。

正则表达式后面的内容将于下一篇博客讲述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值