你可能有所不知的MySQL正则表达式总结

 更新时间:2023年05月26日 16:46:08   作者:中国胖子风清扬  
使用正则表达式可以检索或替换符合某个模式的文本内容,根据指定的匹配模式匹配文本中符合要求的特殊字符串,下面这篇文章主要给大家介绍了关于MySQL正则表达式的相关资料,需要的朋友可以参考下

一、 什么是正则表达式

正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。

说白了就是起到匹配结果集的作用,从结果集中查询到符合开发者想要的数据。

MySQL中的正则表达式需要使用到的关键字是:REGEXP

话不多说,上才艺!!

对于MySQL使用正则表达式,很多猿友一开始会联想到MySQL的模糊查询

SELECT * FROM user WHERE user_name LIKE '%张三';

是的没错,模糊查询的确能干正则所能干的事,但是,所能干的也只有两个方面。

  • % :匹配多个字符
  • _ :匹配一个字符

正则所能进行的匹配条件更多,重点来了!重点来了!重点来了!

二、正则表达式

1、^ :匹配输入字符串的开始位置,也就是匹配的数据以指定的字符作为开头。

SELECT product_name FROM product WHERE product_name REGEXP '^小米'; 
#匹配以“小米”开头的数据

查询结果

2、$ :匹配输入字符串的结束位置,也就是匹配的数据以指定的字符进行结尾。

SELECT product_name FROM product WHERE product_name REGEXP '小米$'; 
#匹配以“小米”结尾的数据

查询结果

3、. :匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用像 ‘[.\n]’ 的模式。

SELECT product_name FROM product WHERE product_name REGEXP '.小米.'; 
#范围[0,1],相当于模糊查询的 '_小米_'

查询结果

4、[…] :字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。

SELECT product_name FROM product WHERE product_name REGEXP '[小米]'; 
#匹配'小'或者'米'任意一个字符

查询结果

5、[ ^ … ] :与 […] 相反

SELECT product_name FROM product WHERE product_name REGEXP '[^小米]';
 #不匹配'小米‘

查询结果

6、| :多种选择匹配模式

SELECT product_name FROM product WHERE product_name REGEXP '小米|仪器';
#匹配的数据中存在'小米'或者'仪器'

查询结果

7、* :匹配前面的子表达式出现0次或者多次,相当于{0,N}

SELECT product_name FROM product WHERE product_name REGEXP '仪器*';

查询结果

8、+ :匹配前面的子表达式出现1次或者多次,相当于{1,N}

SELECT product_name FROM product WHERE product_name REGEXP '仪器+';

查询结果

9、{n} : 设置数据进行匹配的次数

SELECT product_name FROM product WHERE product_name REGEXP '小米{1}';
 #匹配数据集中包含一个小米字段的数据

查询结果

10、{n,m} :设置最小的匹配次数和最大的匹配次数

SELECT product_name FROM product WHERE product_name REGEXP '小米{1,4}'; 
#匹配的数据中至少有一个'小米'字段或者最多只有四个'小米'字段

查询结果

三、总结

正则表达式在每一种编程语言中都存在,为数据的提供了高效的查找方式,也节约了开发者对数据的处理时间,但是正则使用不正确也会带来难以发现的数据查询错误,所以好用、方便的前期是你得使用得正确。

到此这篇关于MySQL正则表达式总结的文章就介绍到这了,更多相关MySQL正则表达式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在Mysql存储过程中使用事务实例

    在Mysql存储过程中使用事务实例

    这篇文章主要介绍了在Mysql存储过程中使用事务实例,需要的朋友可以参考下
    2014-04-04
  • mysql占用CPU过高的解决办法(添加索引)

    mysql占用CPU过高的解决办法(添加索引)

    下面是MYSQL占用CPU高处理的一个例子,希望对遇到类似问题的朋友们有点启发。一般来说MYQL占用CPU高,多半是数据库查询代码问题,查询数据库过多。所以一方面要精简代码,另一方面最好对频繁使用的代码设置索引
    2013-03-03
  • mssql转换mysql的方法小结

    mssql转换mysql的方法小结

    mssql转换mysql的方法小结,需要的朋友可以参考下。
    2011-03-03
  • MySQL查询优化的5个实用技巧

    MySQL查询优化的5个实用技巧

    这篇文章主要介绍了MySQL查询优化的5个实用技巧,从数据类型、字符集、子查询等角度分析了MySQL查询优化的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • Linux下安装mysql-5.6.4 的图文教程

    Linux下安装mysql-5.6.4 的图文教程

    在开始安装前,先说明一下mysql-5.6.4与较低的版本在安装上的区别,从mysql-5.5起,mysql源码安装开始使用cmake了,因此当我们配置安装目录./configure --perfix=/.....的时候和以前的会有些区别,这点我们稍后会提到
    2013-06-06
  • mysql执行计划id为空(UNION关键字)详解

    mysql执行计划id为空(UNION关键字)详解

    这篇文章主要给大家介绍了关于mysql执行计划id为空(UNION关键字)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • navicat 连接Ubuntu虚拟机的mysql的操作方法

    navicat 连接Ubuntu虚拟机的mysql的操作方法

    这篇文章主要介绍了navicat 连接Ubuntu虚拟机的mysql的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Mysql百万级分页优化技巧

    Mysql百万级分页优化技巧

    这篇文章主要介绍了Mysql百万级分页优化技巧,包括普通分页和优化分页两种,在数据量比较大的时候,我们尽量去利用索引来优化语句。下面通过本文给大家详细讲解,一起看看吧
    2016-12-12
  • MYSQL 5.6 从库复制的部署和监控的实现

    MYSQL 5.6 从库复制的部署和监控的实现

    这篇文章主要介绍了MYSQL 5.6 从库复制的部署和监控的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Mysql8创建用户及赋权操作实战记录

    Mysql8创建用户及赋权操作实战记录

    一般在开发中,我们需要新建一个账户,并赋予某个数据库的访问权限,下面这篇文章主要给大家介绍了关于Mysql8创建用户及赋权操作的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04

最新评论