您的位置:首页 > 数据库 > MySQL

Mysql模糊查询语法

2016-06-02 13:47 447 查看
一.Mysql模糊查询语法支持2种匹配格式

1.SQL匹配模式(开发中应用最多的一种)

2.正则表达式匹配模式(不推荐使用)

1.SQL匹配模式(开发中应用最多的一种)

1)使用SQL匹配模式,不能使用操作符=或!=

  而是使用like或not like

2)使用SQL匹配模式,Mysql提供了2中通配符

%表示任意数量的任意字符(其中包括0个)

_表示任意单个字符

3)使用SQL匹配模式,如果匹配格式中不包含

以上2中通配符中的任意一个,其查询效果等同于=或!=

4)使用SQL匹配模式,默认情况下不区分大小写

实例:

1)查询用户名以某个字符开头的用户(在这里username字段是varchar类型)

   查询以字符'l'开头的用户

   like 'l%'

   select * from users(表名) where username like 'l%';

2)查询用户名以某个字符结尾的用户

   %e

   查询用户名以字符'e'结尾的用户

   select * from users(表名) where username like '%e';

3)查询包含某个字符的用户

   查询包含字符'o'的用户

   %o%

   select * from users where usernmae like '%o';

4)查询用户名长度为3的用户名

  ___(3个下划线代表3个字符)

  select * from users where usernmae like '___';

5)查询用户名第二个字符为'o'的用户 

  '_o%'

  select * from users(表名) where username like '_o%';

2.正则表达式匹配模式(不推荐使用)

通配符:

.匹配任意单个字符

*匹配0个或多个在它前面的字符

    x(*)表示匹配任何数量的x字符

    [..]匹配中括号的任意字符

    [abc]匹配字符a b 或 c

    [a-z]匹配任何字母

    [0-9]匹配任何数字

    [0-9]*匹配任何数量的任何数字

    [a-z]*匹配任何数量的字母

^表示以某个字符或字符串开始

    ^a表示以字母a开头

$表示以某个字符或字符串结尾

    $a表示以字母a结尾

使用正则表达式使用的操作模式是REGEXP或NOT REGEXP(RLIKE或NOT RLIKE)

如果使用一个正则表达式来匹配,其模式有别于SQL模式

正则表达式匹配模式,其正则表达式出现在匹配字段的任何位置,其模式就算匹配了,

不必再两侧放一个通配符来使得其匹配。

实例说明一下:如果使用一个正则表达式来匹配,其模式有别于SQL模式

1)查询用户名为字符'l'开头的用户

   SQL匹配模式  l%

   正则表达式   ^l

select * from users where username REGEXP '^l';

2)查询用户名长度为3的用户名

  SQL匹配模式  ___(3个下划线代表3个字符)

  正则表达式   ...(3个点)

  select * from users where REGEXP '...';把所有用户名大于等于3的用户都查询出来了

  注意:如果仅用通配符.来匹配。有几点通配符,假设n个,那么其匹配模式表示,大于等于n个字符

  表示精确字符数的方法:^...$

  select * from users where REGEXP '^...$' 即表示三个字符

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: