mysql模糊查询like与REGEXP的使用详细介绍

 更新时间:2016年12月31日 10:59:54   作者:古德God  
每位程序员们应该都知道,增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课。下面这篇文章就给大家详细介绍了mysql模糊查询like与REGEXP的使用,有需要的朋友们可以参考学习。

前言

在mysql中实现模糊查询的有like和regexp。本文通过实例代码给大家详细介绍这两者的使用方法,下面来跟着小编一起学习学习吧。

like模式

like意思是长得像,有两个模式:_和%

_表示单个字符,通常用来查询定长的数据,如查出所有姓王的三个字的人名,假设姓名列名为name,注意“王”后面有两个_

select name from 表名 where name like '王__';

%表示0个或多个任意字符,如查出所有姓王的人名

select name from 表名 where name like '王%';

查出所有包含“华”字的人名

select name from 表名 where name like '%华%';

正则模式

^,匹配字符串开始位置,还是上面的例子,查询所有姓王的人名

select name from 表名 where name regexp '^王';

$,匹配字符串结束位置,如查询所有姓名末尾是“明”的人名

select name from 表名 where name regexp '明$';

.,匹配除\n之外的任意单个字符,类似于_,就不写sql语句了

[……],匹配[]中包含的任何一个字符,abcdef……xyz可以简写为[a-z],0123456789简写成[0-9],如查询出w/z/s开头的的人名

select name from 表名 where name regexp '^[wzs]';

[^……],匹配不包含在[]的字符,如查询出除了w/z/s开头之外的人名

select name from 表名 where name regexp '^[^wzs]';

a|b|c,匹配a或b或c,如将绩效为A-或A或A+的员工查出来,假设绩效列名performance

select performance from 表名 where performance regexp 'A-|A|A+';

*,重复0次或多次,熟悉javascript正则的同学都知道

     'str*'可以匹配st/str/strr/strrr……

     ?,重复0次或1次

     'str?'可以匹配st/str

     +,重复1次或多次

     'str+'可以匹配str/strr/strrr/strrrr……

相比javascript里面的正则而言,这里的正则是简化版的,没有惰性匹配/贪婪匹配,[]内不支持\w\s\d这种语法,也不支持中文,相对简单。

需要注意的一点是:这两种模式不要混着用,like模式是不支持正则表达式的,REGEXP模式也不认识_和%

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • mysql下的max_allowed_packet参数设置详解

    mysql下的max_allowed_packet参数设置详解

    本文主要介绍了mysql下的max_allowed_packet参数设置详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 使用LEFT JOIN 统计左右存在的数据问题

    使用LEFT JOIN 统计左右存在的数据问题

    最近做了一个数据模块的统计,统计企业收款、发票相关的数据,开始统计是比较简单,后面再拆分账套统计就有点小复杂,这篇文章主要介绍了使用LEFT JOIN 统计左右存在的数据,需要的朋友可以参考下
    2022-10-10
  • Centos 7 安装mysql5.7.24二进制 版本的方法及解决办法

    Centos 7 安装mysql5.7.24二进制 版本的方法及解决办法

    这篇文章主要介绍了Centos 7 安装mysql5.7.24二进制 版本的方法 及遇到问题解决办法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • MySQL表数据文件损坏导致数据库无法启动的原因与解决方案

    MySQL表数据文件损坏导致数据库无法启动的原因与解决方案

    在日常的数据库管理中,遇到MySQL表数据文件损坏的情况并不罕见,这种情况下,MySQL数据库可能会无法正常启动,给业务运行带来严重影响,本文将探讨如何诊断和解决MySQL表数据文件损坏导致的数据库无法启动问题,需要的朋友可以参考下
    2025-03-03
  • 在idea中如何操作MySQL数据库

    在idea中如何操作MySQL数据库

    这篇文章主要介绍了在idea中如何操作MySQL数据库问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 在MySQL执行UPDATE语句时遇到的错误1175的解决方案

    在MySQL执行UPDATE语句时遇到的错误1175的解决方案

    MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引列,或者使用LIMIT限制行数,若SQL语句未满足这些条件,会触发错误1175,本文介绍在MySQL执行UPDATE语句时遇到的错误1175的解决方案,感兴趣的朋友一起看看吧
    2025-02-02
  • linux 下配置安装mysql以及配置【经验】

    linux 下配置安装mysql以及配置【经验】

    这篇文章主要介绍了linux 下配置安装mysql以及配置【经验】,需要的朋友可以参考下
    2016-05-05
  • Mysql实现主从配置和多主多从配置

    Mysql实现主从配置和多主多从配置

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。必然会想到假设服务器群,来分担主数据库的压力。今天总结一下利用MySQL主从配置,减轻数据库压力
    2021-06-06
  • CentOS mysql安装系统方法

    CentOS mysql安装系统方法

    CentOS mysql安装还是很常用的软件,我就学习如何CentOS mysql安装,在这里拿出来和大家分享一下,希望对大家有用。
    2010-11-11
  • Windows下mysql修改root密码的4种方法

    Windows下mysql修改root密码的4种方法

    这篇文章主要为大家详细介绍了windows下mysql修改root密码的4种方法,大家可以根据的自己的实际情况进行选择,感兴趣的小伙伴们可以参考一下
    2016-05-05

最新评论