使用通配符查询数据(LIKE)

使用通配符进行过滤

本章使用 LIKE 操作符进行通配搜索

通配符一般配合 LIKE 子句 (LIKE 也叫做模糊查询)

通配符 本身实际是 MYSQL 的 WHERE 子句中有特殊含义的字符,SQL 支持以下几种通配符

百分号(%)通配符

最常使用的通配符是百分号(%), 在搜索串中,%表示任何字符出现的任意次数

  • 比如我想要找 jet 开头的 名字

SELECT * FROM user WHERE name like 'jet%';

分析 在这条语句执行的时候他会检索以 jet 开头的名字 % 告诉 Mysql 接受 jet 之后的任意字符,不管他有多少字符,这里特别注意的就是它区分大小写 因为里面的数据不一样了

  • 通配符也可以使用多个

SELECT * FROM name LIKE '%ai%';

它查询到的结果就是名字里面包含 ai 的

这里特别注意的就是 尾空格 尾空格会干扰通配符的匹配。比如结尾要是后面有一个或者多个空格 like ‘%ai’ 将不会匹配他们,因为最后有多余的字符.解决这个问题最简单的办法就是后面加一个%,还有一个更好的办法就是使用函数(利用函数去掉首尾空格)

  • 还有一点 特别注意 NULL

虽然似乎% 通配符可以匹配任何东西,但有一个例外即 NULL,即使 WHERE name LIKE ‘%’也匹配不出来 NULL 作为产品的行

下划线(_)通配符

另外一个有用的通配符是下划线(_) 下划线的用途与%一样,但下划线只匹配单个字符串而不是多个字符


SELECT * FROM products WHERE name LIKE '_money'

它表示名字前面 第一位是随便的,后面的是 money,有多少个_就站多少位

使用通配符技巧

  • 不要过度使用通配符,如果其他操作能达到相同的目的,应该使用其他操作符

  • 通配符搜索速度是最慢的

  • 仔细注意通配符的位置 如果放错地方,可能不会返回想要的数据


文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !
  目录