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、注意放置的位置,放错位置的话,返回的可能不是你想要的

  

原文地址:https://www.cnblogs.com/obge/p/12938194.html