首页 > 数据库 >解密MySQL中强大的武器——REGEXP正则表达式

解密MySQL中强大的武器——REGEXP正则表达式

时间:2023-09-14 21:01:56浏览次数:37  
标签:匹配 name 正则表达式 解密 column MySQL REGEXP

家人们,今天我来为大家介绍一项在 MySQL 中非常强大的武器——REGEXP正则表达式。MySQL 作为一款广泛使用的关系型数据库管理系统,其内置的 REGEXP 关键字为我们提供了强大的正则表达式功能,使得我们可以更加灵活和高效地进行数据匹配和处理。

以下是一些常见的用法和语法规则来详解REGEXP

1. 基本用法:

REGEXP后跟一个包含正则表达式的字符串。

SELECT column_name
FROM table_name
WHERE column_name REGEXP 'pattern';
2. 模式语法:

正则表达式是由各种字符组成的模式。在 MySQL 中,支持一些常见的正则表达式元字符,如下所示:

  • .:匹配任意单个字符。
  • ^:匹配字符串的开头。
  • $:匹配字符串的结尾。
  • *:匹配前一个字符零次或多次。
  • +:匹配前一个字符一次或多次。
  • ?:匹配前一个字符零次或一次。
  • []:匹配括号内的任意一个字符。
  • [^]:匹配不在括号内的任意一个字符。
  • ():捕获子模式。
  • |:用于逻辑或操作符。
3. 匹配结果:

REGEXP匹配成功时,返回结果为真(1),否则返回结果为假(0)。

4. 不区分大小写匹配:

默认情况下,REGEXP是区分大小写的。如果需要进行不区分大小写的匹配,可以使用REGEXP BINARY

SELECT column_name
FROM table_name
WHERE column_name REGEXP BINARY 'pattern';
5. 结合其他条件:

可以将REGEXP与其他条件组合使用,如ANDORLIKE等,以实现更复杂的查询逻辑。

SELECT column_name
FROM table_name
WHERE column_name REGEXP 'pattern'
  AND other_condition;
6. 示例

查询 sys_file 表中 file_path 字段为http://后边为数字或者.的数据

select * from  sys_file where file_path REGEXP '^http:\/\/[0-9]+([0-9.]+)?$';
7. 注意安全性:

在使用 REGEXP 时,要注意防止正则表达式注入。类似于 SQL 注入,正则表达式注入可能会导致安全漏洞。要避免这种情况,建议对输入的数据进行严格的验证和过滤,确保只有可信的数据才被用于构建正则表达式。

这些是关于 MySQL 中REGEXP的一些详解和用法示例。通过了解这些,你可以根据需要编写适合的正则表达式来实现更精确的字符串匹配查询。然而,正则表达式也有一些需要注意的地方,首先,正则表达式的语法相对复杂,需要一定的学习和实践才能熟练运用。其次,对于大规模数据的处理,使用正则表达式可能会导致性能下降,因此在性能敏感的场景中需要慎重使用。

标签:匹配,name,正则表达式,解密,column,MySQL,REGEXP
From: https://blog.51cto.com/xiuji/7474051

相关文章

  • MySQL5.7安装超详细步骤(图文超详细教程)
    一、首先下载MySQLMysql官网下载地址: MySQL::DownloadMySQLInstaller(ArchivedVersions)华为MySQL镜像站: https://mirrors.huaweicloud.com/mysql/Downloads/网易云开源镜像站: http://mirrors.163.com/在下载列表中选择需要安装的版本:  二、其次安装MySQL1......
  • MySQL单表数据量
    小结:1、数据页需要读写,写入到一半的过程中可能会发生了意外断电等情况,所以为了保证数据页的准确性,还引入了校验码; 我跟面试官说MySQL单表数据量不要超过两千万,面试官不信https://mp.weixin.qq.com/s/C3VI2-pMkhkNIwxzQlhdLg  翻译搜索复制......
  • crypto 加解密库简介与测试【GO 常用的库】
    〇、前言GO语言的标准库crypto提供了一组用于加密和解密的包,包括对称加密、哈希函数、数字签名、随机数生成等功能。在日常开发中,通过使用这些库,可以确保数据的安全性和完整性。对于使用频率比较高的东西,还是要汇总一下用来备查。一、md5加密md5包实现了RFC1321中定义......
  • python连接mysql sql注入问题 事务
    1.pycharm连接MySQL importpymysql#1.连接MySQL服务端conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='123456',db='db3',charset='utf8',autocommit=True......
  • MySQL之Explain各列详解
    Explain各列详解explain语句执行后返回id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra列。1、id列id列的编号是select的序列号,有几个select就有几个id,并且id的顺序是按照select出现顺序增长的,MySQL将select查询分为简单查询(SIMPLE)和复杂查询(P......
  • mysql8安装卸载脚本
    说明:安装8.0.34版本mysql,脚本执行完成后会自动启动mysql,修改数据库root密码为Lz!2023@aD使用方法:./mysql_install.shinstall#安装数据库./mysql_install.shuninstall#卸载数据库安装包获取地址:链接:https://pan.baidu.com/s/1qpuFXaCTo1NQ44Hq_Vd_vg?pwd=9948#!/......
  • Mysql存储引擎,你了解几个?
    引言MySQL是一种流行的关系型数据库管理系统(RDBMS),它支持多种不同的数据库引擎。数据库引擎是用于存储、管理和检索数据的核心组件,它们直接影响着数据库的性能、可靠性和功能,接下来本文介绍下一些常见的MySQL数据库引擎。存储引擎InnoDB引擎InnoDB是MySQL默认的事务性数据库引......
  • Mysql 常用命令
    1.Mysql命令行登录mysql-h127.0.0.1-uroot-P3306-p2.创建用户CREATEUSER"killer"@"localhost"IDENTIFIEDBY"password";--允许远程登录的话,localhost改为%  3.用户授权GRANTALLPRIVILEGESON*.*TO"username"@"localho......
  • Mysql8.0升级到8.1
    1.官网下载8.1版本本次选择的zip的方式,也可选择MSI的方式(MSI文件下载后双击即可安装)   2.备份旧版中的数据库(使用Navicate工具做的备份)命令方式备份数据:mysqldump-uroot-proot-h127.0.0.1-P3306--all-databases>“F:\MySQL\MySQLServer8.0\data\backup.sql”3......
  • 【MySQL优化】索引失效的场景
    目录索引失效场景未遵循最左前缀匹配导致索引失效索引列参与运算索引列使用了函数类型转换导致索引失效OR引起的索引失效负向查询导致索引失效索引字段使用ISNOTNULL导致失效两列数据做比较会导致索引失效索引失效场景假设存在如下表:CREATETABLE`t_employee`(`id`i......