当前位置: 首页 > news >正文

MySQL regexp 命令

REGEXP命令是一种用于进行正则表达式匹配的运算符,允许在查询中使用正则表达式来匹配字符串模式‌‌1。

基本语法

基本的语法结构如下:

SELECT * FROM table_name WHERE column_name REGEXP 'pattern';

这里,pattern是你要匹配的正则表达式模式‌1。

常用正则表达式符号及其含义

  • ^:匹配字符串的开始。
  • $:匹配字符串的结束。
  • .:匹配任意单个字符。
  • *:匹配前一个字符零次或多次。
  • +:匹配前一个字符一次或多次。
  • ?:匹配前一个字符零次或一次。
  • |:表示“或”操作。
  • []:匹配方括号内的任意单个字符,例如 [abc] 匹配 a、b 或 c‌1。

示例查询

  1. 匹配包含特定字符的行‌:
    SELECT * FROM users WHERE name REGEXP '^[A-M]'; -- 匹配以 A 到 M 开头的名字 
  2. 匹配包含数字的订单号‌:
    SELECT * FROM orders WHERE order_number REGEXP '[0-9]'; -- 匹配包含数字的订单号 
  3. 匹配多个选项‌:
    SELECT * FROM products WHERE category REGEXP 'electronics|furniture'; -- 匹配电子产品或家具 
  4. 区分大小写‌:如果需要区分大小写,可以使用 BINARY 关键字:
    SELECT * FROM users WHERE BINARY name REGEXP '^[A-M]'; -- 匹配以 A 到 M 开头的名字,区分大小写 
  5. 匹配特定域名下的电子邮件‌:
    SELECT * FROM employees WHERE email REGEXP '@example.com$'; -- 匹配所有在 example.com 域名下的电子邮件 

 ‌匹配只包含数字的行‌:

SELECT buildnum FROM ya_evaluating_price WHERE buildnum REGEXP '^[0-9]+$';

  ‌匹配包含汉字的数据

SELECT buildnum FROM ya_evaluating_price WHERE buildnum REGEXP '[\\x{4e00}-\\x{9fa5}]'


-- 在MySQL中,UTF8MB4字符集支持所有Unicode字符,包括中文字符。我们可以将字段的字符集设置为UTF8MB4,然后判断字段内容的长度是否大于原内容的长度,以此来判断字段内容是否包含中文。

SELECT buildnum FROM ya_evaluating_price WHERE CHAR_LENGTH(buildnum) < LENGTH(buildnum)

性能影响和最佳实践

使用REGEXP可能会影响性能,特别是在大型数据集上。因此,需要确保正则表达式的正确性,以避免意外匹配‌

相关文章:

  • C++基础(VScode环境安装)
  • MyBatis 的配置对象 Configuration 作用详解
  • 【QT】QScrollBar设置样式:圆角、隐藏箭头、上边距等
  • Qt配置OpenGL相机踩的坑
  • 蓝桥杯 C++ b组 统计子矩阵双指针+一维前缀和
  • 【2025深夜随笔】简单认识一下Android Studio
  • Redis 缓存穿透、缓存击穿与缓存雪崩详解:问题、解决方案与最佳实践
  • C语言一维数组
  • SD模型进阶学习全攻略(三)
  • 深入理解Mesa:Linux图形渲染背后的开源力量
  • OSPF总结
  • 正则表达式快速入门
  • MyBatis 中SQL 映射文件是如何与 Mapper 接口关联起来的? MyBatis 如何知道应该调用哪个 SQL 语句?
  • 高校数字素养通识教育解决方案
  • 饮食调治痉挛性斜颈,开启健康生活
  • 【python运行Janus-Pro-1B文生图功能】
  • 可视化图解算法:链表指定区间反转
  • 版本号标识
  • 【C++】C++11新特性
  • C语言中scanf(“%c“,s)会出现的问题
  • 申花四连胜领跑中超联赛,下轮榜首大战对蓉城将是硬仗考验
  • 伤者升至80人,伊朗港口爆炸源头或为“危险品和化学品仓库”
  • 四川甘孜州白玉县发生4.9级地震,震源深度10千米
  • 铜钴巨头洛阳钼业一季度净利润同比大增九成,最新宣布首度进军黄金矿产
  • 破解160年基因谜题,我国科学家补上豌豆遗传研究最后拼图
  • 印媒称印巴在克什米尔控制线沿线发生小规模交火,巴方暂未回应