MySQL ---- 过滤数据 通配符 like (七)
like操作符:对于未知的进行搜索,结合通配符使用
通配符(wildcard): 用来匹配值得一部分的特殊字符
搜索模式(search pattern):由字面值、统配符或两者组合的搜索模式
注意:
1、通配符本身是SQL 的WHERE 子句有特殊含义的字符,常见的有百分号(%)通配符 和下划线(_)通配符。
2、在使用通配符时必须使用like 操作符,like后跟的搜索模式利用通配符进行匹配
3、操作符在作为谓词(predicat)时,不是操作符,从技术上讲Like 是谓词不是操作符
one、百分号(%)通配符: 表示任何字符出现任意次数,就是可以代表多个单词
%放在最后时
-- 检索商品名是 jet开头的商品 select prod_id,prod_name,prod_price from products where prod_name like 'jet%' order by prod_price;
放在两端时,匹配位置包含 ton 文本的值,不论之前或之后出现 什么字符
-- 检索商品名中 有ton 的商品 select prod_id,prod_name,prod_price from products where prod_name like '%ton%' order by prod_price;
放在中间
-- 检索商品名以2 开头 l 结尾的商品 select prod_id,prod_name,prod_price from products where prod_name like '2%l' order by prod_price;
注意:
1、除了一个或多个字符外,%还能匹配0个字符
2、尾空格可能会干扰通配符的匹配,因为空格也属于字符,空白字符
3、%通配符匹配不了NULL
two、下划线(_)通配符:只匹配单个字符
-- 商品名首字母忘了,但是知道后面的 select prod_id,prod_name,prod_price from products where prod_name like '_ ton anvil';
百分号(%)是可以匹配0个到多个字符的,下划线只能匹配一个
注意: 通配符的搜索处理比其他的搜索所花的时间更长,所以
1、不要过度使用通配符,如果通过其他操作符可以查到,尽量不用通配符
2、使用的话,也要注意不要把通配符放到开始处,这样搜索是最慢的
3、注意放置的位置,放错位置的话,返回的可能不是你想要的