like要求整个数据都要匹配,而REGEXP只需要部分匹配即可。 、

也就是说,用Like,必须这个字段的所有内容满足条件,而REGEXP只需要有任何一个片段满足即可。

MySQL提供标准的SQL模式匹配(like),以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式(regexp)。

SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。下面显示一些例子。注意在你使用SQL模式时,你不能使用=或!=;而使用LIKE或NOT LIKE比较操作符。

为了找出以“b”开头的名字:

mysql> SELECT * FROM pet WHERE name LIKE "b%";

+--------+--------+---------+------+------------+------------+

| name | owner | species | sex | birth | death |

+--------+--------+---------+------+------------+------------+

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

+--------+--------+---------+------+------------+------------+

为了找出以“fy”结尾的名字:

mysql> SELECT * FROM pet WHERE name LIKE "%fy";

+--------+--------+---------+------+------------+-------+

| name | owner | species | sex | birth | death |

+--------+--------+---------+------+------------+-------+

| Fluffy | Harold | cat | f | 1993-02-04 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

+--------+--------+---------+------+------------+-------+

为了找出包含一个“w”的名字:

mysql> SELECT * FROM pet WHERE name LIKE "%w%";

+----------+-------+---------+------+------------+------------+

| name | owner | species | sex | birth | death |

+----------+-------+---------+------+------------+------------+

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |

+----------+-------+---------+------+------------+------------+

为了找出包含正好5个字符的名字,使用“_”模式字符:

mysql> SELECT * FROM pet WHERE name LIKE "_____";

+-------+--------+---------+------+------------+-------+

| name | owner | species | sex | birth | death |

+-------+--------+---------+------+------------+-------+

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

+-------+--------+---------+------+------------+-------+

另外一种匹配是基于正则表达式的。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。

“.”匹配任何单个的字符。

一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。

“ * ”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。

正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。

如果它出现在被测试值的任何地方,模式就匹配(只要他们匹配整个值,SQL模式匹配)。

为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。

为了说明扩展正则表达式如何工作,上面所示的LIKE查询在下面使用REGEXP重写:

为了找出以“b”开头的名字,使用“^”匹配名字的开始并且“[bB]”匹配小写或大写的“b”:

mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";

+--------+--------+---------+------+------------+------------+

| name | owner | species | sex | birth | death |

+--------+--------+---------+------+------------+------------+

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

+--------+--------+---------+------+------------+------------+

为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:

mysql> SELECT * FROM pet WHERE name REGEXP "fy$";

+--------+--------+---------+------+------------+-------+

| name | owner | species | sex | birth | death |

+--------+--------+---------+------+------------+-------+

| Fluffy | Harold | cat | f | 1993-02-04 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

+--------+--------+---------+------+------------+-------+

为了找出包含一个“w”的名字,使用“[wW]”匹配小写或大写的“w”:

mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";

+----------+-------+---------+------+------------+------------+

| name | owner | species | sex | birth | death |

+----------+-------+---------+------+------------+------------+

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |

+----------+-------+---------+------+------------+------------+

实例:

1.基本字符匹配

REGEXP后所跟的东西作为正则表达式处理。

SELECT prod_name

FROM products

WHERE prod_name REGEXP '1000'

ORDER BY prod_name;

------返回------

+------------------------+

| prod_name |

+------------------------+

| JetPack 1000 |

+------------------------+

mysql模式匹配用什么关键字_MYSQL模式匹配:REGEXP和like用法相关推荐

  1. mysql中version是关键字_mysql关键字

    在今儿hibernate执行save方法的时候显示sql语法错误 Sql代码 You have an error in your SQL syntax; check the manual that c ...

  2. MySQL查询行记录关键字_MySQL数据库~~~~~查询行(文件的内容)

    1. 单表查询 语法 select distinct 字段 from 库名.表名 where 条件 group by 字段 # 分组 having 筛选 # 过滤 order by 字段 # 排序 l ...

  3. mysql唯一索引的关键字_mysql中唯一索引的关键字是什么

    mysql中唯一索引的关键字是unique index.创建唯一索引可以避免数据出现重复.唯一索引可以有多个,但索引列的值必须唯一,索引列的值允许有空值.创建唯一索引可以使用关键字UNIQUE随表一同 ...

  4. mysql用于检索的关键字_Mysql全文搜索match...against的用法

    全文检索在 MySQL 中就是一个 FULLTEXT 类型索引.FULLTEXT 索引用于   MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREAT ...

  5. mysql删减表的关键字_Mysql 删除数据及数据表

    在Mysql 中删除数据以及数据表非常的容易,但是需要特别小心,因为一旦删除所有数据都会消失. 删除数据 删除表内数据,使用delete关键字. 删除指定条件的数据 删除用户表内id 为1 的用户:d ...

  6. mysql数据库的排序关键字_mysql数据库,排序的语句

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 展开所有 具体如下: 1,第一个一百步骤,创建一个测试表,代码如下,请参见下图,转到以下步骤. 2.第二步,度完成上 ...

  7. mysql 多字段单关键字_mysql多关键字多字段模糊查询

    假设有这样两条数据: (表名为user) 1) username=admin,password=000000 2) username=admin,password=123456 我们要实现的效果是可以 ...

  8. mysql中checktable语句来_MySQL的命令check table用法

    MySQL日志文件里出现以下错误,MySQL表通常不会发生crash情况,一般是在更新数据库时MySQL停止会导致. CHECK TABLE语法 CHECK TABLE tbl_name[,tbl_n ...

  9. mysql中replace into效率_MYSQL中replace into的用法

    做项目是遇到这样一个问题,把查询出的数据插入到一个新表里面,第一次可以直接插入,但是第二次第三次的时候如果直接更新,但是会有些新的数据需要添加,但是如果先删除再插入的话效率不高,如果对比两端的数据,相 ...

最新文章

  1. 包邮送 36 本书,已全部打包好!
  2. vue.js中mock本地json数据
  3. [JAVA][算法] [字符串匹配]KMP
  4. matlab 求解进度,报告测试运行进度的插件
  5. html ajax 菊花,Ajax加载菊花loding效果
  6. Ubuntu关于apt-get remove与apt-get purge
  7. 杀掉僵尸 MapReduce 任务的两种方式
  8. 恭喜宿主获得鸿蒙,第四十章大殿讲道,十连抽获得鸿蒙至宝!
  9. virtualenv搭建虚拟环境
  10. String转LocalDateTime
  11. 3G模块SIM5360E拨号上网
  12. 为什么我无法访问自己的工作组Workgroup
  13. InsecureProgramming-master——abo1
  14. php限制pc访问,禁止直接访问网首首页index.php文件的方法Windows服务器操作系统 -电脑资料...
  15. Hadoop HA集群配置问题记录
  16. 【网格 dp】A005_LC_二指输入的的最小距离(枚举上一个状态)
  17. 国内十大开源linux社区
  18. vs错误描述:fatal error C1010:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“
  19. python分割_Python文件合并与分割操作方法工具
  20. mac打开chm文件

热门文章

  1. 什么是windows10的Shell Infrastructure Host
  2. 如何使用nodejs代码在新浪微博上发布帖子
  3. workflow initialization - GSWFWC
  4. why approver preview in Document builder is empty
  5. SAP UI5的calendar 日历控件
  6. Cloud for Customer的work center显示逻辑
  7. ABAP正则表达式 vs SPLIT INTO 1
  8. ecshop flow.php?step=checkout,【原创文章】推荐两种调试ecshop php程序日志记录的方法...
  9. python中单行注释_Python中的单行、多行、中文注释方法
  10. springboot util 测试类怎么写_SpringBoot入门建站全系列(九)文件上传功能与下载方式...