MySQL 用通配符过滤

说明:本文所使用的数据库样例表创建脚本下载地址:https://github.com/zhaoxd298/mysql_scripts

一、概念介绍

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

LIKE操作符:为在搜索子句中使用通配符,必须使用LIKE操作符。LIKE操作符只是MySQL后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。

谓词:操作符何时不是操作符?答案是它作为谓词(predicate)时。从技术上说,LIKE是谓词而不是操作符。虽然最终的结果是相同的。

二、百分号(%)通配符

  在搜索串中,%表示任何字符出现任意次数。例如,为了找出所有以词jet开头的产品,可使用一下SELECT语句:

mysql> USE crashcourse;
mysql> SELECT prod_id, prod_name
    -> FROM products
    -> WHERE prod_name LIKE 'jet%';

执行结果:
这里写图片描述

注意区分大小写:根据MySQL的配置方式,搜索可以是区分大小写的。如果区分大小写,本例子将没有任何数据返回。

  通配符可以在搜索模式中任意位置使用,并可以使用多个通配符。下面例子使用两个通配符,他们位于模式的两端:

mysql> SELECT prod_id, prod_name
    -> FROM products
    -> WHERE prod_name LIKE '%anvil%';

执行结果:
这里写图片描述

注意:由本次试验可知,%处理可以匹配一个或多个字符外,%还可以匹配0个字符

三、下划线(_)通配符

  下划线通配符和%用途一样,但下划线通配符只能匹配单个字符。举个例子:

mysql> SELECT prod_id, prod_name
    -> FROM products
    -> WHERE prod_name LIKE '_ ton anvil';

执行结果:
这里写图片描述

若把本示例中的_换成%,执行结果如下:
这里写图片描述

发现用%来匹配多了一行。与%能匹配0个字符不一样,_总是匹配一个字符,不能多也不能少。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值