mysql中如何使用正则表达式查询

 更新时间:2014年06月11日 09:18:52   作者:  
这篇文章主要介绍了mysql中如何使用正则表达式查询,需要的朋友可以参考下
基本形式

属性名 regexp ‘匹配方式'

正则表达式的模式字符

^ 匹配字符开始的部分

eg1: 从info表name字段中查询以L开头的记录

select * from info where name regexp '^L';

eg2: 从info表name字段中查询以aaa开头的记录

select * from info where name regexp '^aaa';

$ 匹配字符结束的部分

eg1: 从info表name字段中查询以c结尾的记录

select * from info where name regexp 'c$';

eg2: 从info表name字段中查询以aaa结尾的记录

select * from info where name regexp 'aaa$';

. 匹配字符串中的任意一个字符,包括回车和换行

eg1: 从info表name字段中查询以L开头y结尾中间有两个任意字符的记录

select * from info where name regexp '^L..y$';

[字符集合]匹配字符集合中的任意字符

eg1: 从info表name字段中查询包含c、e、o三个字母中任意一个的记录

select * from info where name regexp '[ceo]';

eg2: 从info表name字段中查询包含数字的记录

select * from info where name regexp '[0-9]';

eg3: 从info表name字段中查询包含数字或a、b、c三个字母中任意一个的记录

select * from info where name regexp '[0-9a-c]';

[^字符集合]匹配除了字符集合外的任意字符

eg1: 从info表name字段中查询包含a-w字母和数字以外字符的记录

select * from info where name regexp '[^a-w0-9]';

s1|s2|s3 匹配s1s2s3中的任意一个

eg1: 从info表name字段中查询包含'ic'的记录

select * from info where name regexp 'ic';

eg2: 从info表name字段中查询包含ic、uc、ab三个字符串中任意一个的记录

select * from info where name regexp 'ic|uc|ab';

* 代表多个该字符前的字符,包括0个或1个

eg1: 从info表name字段中查询c之前出现过a的记录

select * from info where name regexp 'a*c';

+ 代表多个该字符前的字符,包括1个

eg1: 从info表name字段中查询c之前出现过a的记录

select * from info where name regexp 'a+c';(注意比较结果!)

字符串{N} 字符串出现N次

eg1: 从info表name字段中查询出现过a3次的记录

select * from info where name regexp 'a{3}';

字符串{M,N}字符串最少出现M次,最多出现N次

eg1: 从info表name字段中查询ab出现最少1次最多3次的记录

select * from info where name regexp 'ab{1,3}';

MYSQL中自带通配符(LIKE关键词)

%可以表示任意长度的字符(包括0)

-可以表示单个字符

相关文章

  • MySQL错误:Can‘t connect to MySQL server on localhost解决办法(分多种情况)

    MySQL错误:Can‘t connect to MySQL server on localhost解决办法

    这篇文章主要给大家介绍了关于MySQL错误:Can‘t connect to MySQL server on localhost的解决办法,文中介绍的方法分多种情况,通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • MySQL数据库防止人为误操作的实例讲解

    MySQL数据库防止人为误操作的实例讲解

    这篇文章主要介绍了MySQL数据库防止人为误操作的方法,需要的朋友可以参考下
    2014-06-06
  • MySQL8.x连接5.x 服务器认证问题解决

    MySQL8.x连接5.x 服务器认证问题解决

    MySQL 8.0与5.x认证插件不兼容,需在客户端指定使用mysql_native_password,下面就来介绍一下如何解决,感兴趣的可以了解一下
    2025-08-08
  • 彻底解决MySQL使用中文乱码的方法

    彻底解决MySQL使用中文乱码的方法

    本文详细讲解了彻底解决MySQL使用中文乱码的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • MyISAM和InnoDB引擎优化分析

    MyISAM和InnoDB引擎优化分析

    这几天在学习mysql数据库的优化并在自己的服务器上进行设置,喻名堂主要学习了MyISAM和InnoDB两种引擎的优化方法,需要了解跟多的朋友可以参考下
    2012-11-11
  • mysql LOAD语句批量录入数据

    mysql LOAD语句批量录入数据

    本章的前面讨论如何使用SQL向一个表中插入数据。但是,如果你需要向一个表中添加许多条记录,使用SQL语句输入数据是很不方便的。
    2010-03-03
  • mysql中的utf8与utf8mb4存储及区别

    mysql中的utf8与utf8mb4存储及区别

    本文主要介绍了mysql中的utf8与utf8mb4存储及区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • MySQL组提交group commit详解

    MySQL组提交group commit详解

    这篇文章主要介绍了MySQL组提交group commit知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • MYSQL使用inner join 进行 查询/删除/修改示例

    MYSQL使用inner join 进行 查询/删除/修改示例

    本文为大家介绍下使用inner join 进行查询/删除/修改,具体实现如下,学习mysql的朋也可以学习下,希望对大家有所帮助
    2013-07-07
  • MySQL中按时间获取慢日志信息的方法

    MySQL中按时间获取慢日志信息的方法

    这篇文章主要介绍了MySQL中按时间获取慢日志信息的方法,使用到了cutlogbytime这个工具,主要操作是设置时间戳,需要的朋友可以参考下
    2015-05-05

最新评论