在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%%结尾的记录*/
收藏 打印