MySql学习(三)

使用通配符进行过滤

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

搜索模式:由字面值、通配符或两者组成的搜索条件

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

1.%通配符,表示任何字符出现任意次数

select prod_id,prod_name
from products
where prod_name LIKE 'jet%';
检索任意以 jet 起头的词
select prod_id,prod_name
from products
where prod_name LIKE '%anvil%';
匹配任何位置包含文本anvil的值,而不论它之前或之后出现什么字符

使用'%'不能匹配用值NULL作为产品名的行

2. _ 通配符,只能匹配单个字符

select prod_id,prod_name
from products
where prod_name LIKE '_ ton anvil';
匹配1 ton anvil, 2 ton anvil. 而 .5 ton anvil产品没有匹配
不要过度使用通配符,尽量不要把通配符置于搜索模式的起始处

用正则表达式进行搜索

使用REGEXP操作符连接

select prod_name
from products
where prod_name REGEXP '.000';
1.正则表达式 . 表示匹配任意一个字符
LIKEREGEXP之的差别:
LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。
2.正则表达式 | 
select prod_name
from products
where prod_name REGEXP '1000|2000';
3. 正则表达式[ ]
select prod_name
from products
where prod_name REGEXP '[123] Ton';
[123]定义一组字符,它的意思是匹配123,[1|2|3]Ton的缩写,也可简化为[1-3]
select prod_name
from products
where prod_name REGEXP '\\.';
为了匹配特殊字符,必须用 \\ 为前导。 \\ - 表示查找 - \\ . 表示查找.








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值