mysql like模糊查询及通配符实例讲解

时间:2016-08-27
在mysql中,我们可以使用select where来查询过滤需要的数据记录,where后面一般是使用等于子句号(=)用来精确匹配,如何我们需要使用模糊匹配,则可以使用like子语句,本文章向大家介绍mysql like模糊查询使用方法和实例,需要的朋友可以参考一下。

在mysql查询中,我们有时候需要使用模糊匹配来查询需要的记录结果,这个时候我们可以使用like,like子语句一般和%、下划线和escape一起使用,用来进行模糊匹配.

%:表示任意个或多个字符。可匹配任意类型和长度的字符。比如:

  1. like '%a'   用来匹配以a结尾的字符串,比如"123a","sdaaa"都会被匹配到
  2. like 'a%'   用来匹配以a开头的字符串,比如"a123","asda"都会被匹配到
  3. like '%a%'  用来匹配包含字母a的字符串

_:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个中文字符)

escape:如果我就真的要查%或者_,怎么办呢?使用escape,转义字符后面的%或_就不作为通配符了

下面我们向大家列举几个mysql like模糊查询实例。

SELECT * FROM employee WHERE employee.first_name LIKE 'A%';

解释:查询first_name字段值以A开头的结果记录

SELECT * FROM employee WHERE employee.first_name LIKE '%A%';

解释:查询first_name字段值包含A的结果记录

select * from article where category like '_'; /*匹配category值长度为1的记录结果*/
select * from article where category like 'huxia_'; /*匹配category值以huxia开头并且结尾为任意字符的值*/
select * from article where category like 'h_xiao'; /*匹配category值以h开头xiao结尾并且中间加上任何一个字符*/
/* http://www.manongjc.com/article/1409.html */

select username from gg_user where username like '%xiao/_%' escape '/';  /*匹配username值以xiao_%结尾的记录*/
select username from gg_user where username like '%xiao/%%' escape '/';/*匹配username值以xiao%%结尾的记录*/