在前面的章节我们已经了解到MySQL可以通过 LIKE ...% 来进行模糊匹配。

MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。

如果您了解PHP或Perl,那么操作起来就非常简单,因为MySQL的正则表达式匹配与这些脚本的类似。

下表中的正则模式可应用于 REGEXP 操作符中。

模式

描述

^

匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。

$

匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。

.

匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。

[...]

字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。

[^...]

负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。

p1|p2|p3

匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。

匹配前面的子表达式零次或多次。例如,zo 能匹配 "z" 以及 "zoo"。* 等价于{0,}。

+

匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。

{n}

n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。

{n,m}

m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。

实例

了解以上的正则需求后,我们就可以根据自己的需求来编写带有正则表达式的SQL语句。以下我们将列出几个小实例(表名:person_tbl )来加深我们的理解:

查找name字段中以'st'为开头的所有数据:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

查找name字段中以'ok'为结尾的所有数据:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

查找name字段中包含'mar'字符串的所有数据:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

查找name字段中以元音字符开头或以'ok'字符串结尾的所有数据:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

转自:https://www.w3cschool.cn/mysql/mysql-regexp.html

mysql 正则 换行符_MySQL 正则表达式相关推荐

  1. mysql正则比较大小_MySQL正则表达式匹配

    概述 正则表达式和MySQL有何关系?正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较.MySQL用where子句对正则表达式提供了初步的支持,允许你指定正则表达式,过滤sel ...

  2. php mysql text换行符_请教php配合mysql的换行符和空格字符问题

    你的位置: 问答吧 -> PHP -> 问题详情 请教php配合mysql的换行符和空格字符问题 我通过form表单的text框把一大段文字,使用php写道了mysql的数据库中. 这段文 ...

  3. mysql 正则去小数位_mysql必知必会--用正则表达式 进行搜索

    正则表达式介绍 前两章中的过滤例子允许用匹配.比较和通配操作符寻找数据.对 于基本的过滤(或者甚至是某些不那么基本的过滤),这样就足够了.但 随着过滤条件的复杂性的增加, WHERE 子句本身的复杂性 ...

  4. mysql去除select换行符_MySQL中去除字段中的回车符和换行符

    问题: 在使用[ load data infile 'D:/node.txt' into table node fields terminated by '\t'; ]语句批量导入如下图所示的aaa. ...

  5. python正则去除换行符,关于python:用于删除换行符的正则表达式

    我是Python的新手,我遇到了正则表达式问题. 我正在尝试删除文本文件中每行末尾的换行符,但前提是它跟在小写字母后面,即[a-z]. 如果该行的结尾以小写字母结尾,我想用空格替换换行符/换行符. 这 ...

  6. mysql 包含非数字_mysql 正则表达式查询含有非数字和字符的记录

    比如我们有一张school表,里面有一个字段county_name,现在我们要查询county_name字段中包含a-w字母和数字以外字符的记录,那么sql该如何写呢?请看下面的写法: select ...

  7. MySQL替换换行符

    文章目录 一.问题描述 二.解决方案 参考: 一.问题描述 今天朋友突然问了一个问题,他想把今天hive里面表字段的备注多行转换为单行显示. 例如表t1的col1列,注释为: 1-有效 0-无效 想要 ...

  8. MySQL隐藏换行符的处理

    (1)在设计数据库字段的时候,把需要获取手机号的字段设置为int(11),原意是要取11位数的,结果发现所有的手机号码,都变成了2147483647 ,顿时觉得很奇怪,以为是程序有问题,最后发觉是数据 ...

  9. mysql 正则 java 区别_MySQL中的正则表达式

    MySQL中允许使用正则表达式定义字符串的搜索条件,性能比like匹配查询还高 MySQL中的正则表达式可以对整数类型或者字符类型检索 使用REGEXP关键字表示正则匹配,默认忽略大小写,如果区分大小 ...

最新文章

  1. Python 学习笔记13 类 - 继承
  2. 移动端也能兼容的web页面制作2:导航栏、背景图片设置
  3. MyBatisPlus3.x代码生成器生成实体类自定义需要填充的字段
  4. C语言学习之输入一个大于三的值判断是否为素数
  5. Exaple2_1(显示转换)
  6. nodejs和Vue和Idea
  7. 进程之父子进程的关系
  8. RobotFramework中查询数据库相关
  9. 基于VisualC++2010开发Windows7杀毒应用程序范例(2)---检测并遍历所有进程的线程信息...
  10. 关于左移右移的操作 学习
  11. 【王道考研】计算机网络知识点
  12. (C++)设计算法求集合{1,2,...,n}的幂集
  13. 宽带拨号连接失败,代码651
  14. 计算机硬件的五个功能部件及其功能
  15. CSS线性渐变和径向渐变详解
  16. 俞敏洪励志演讲:摆脱恐惧
  17. yun2win发布即时通讯云IM,做最安全的即时通讯云!
  18. vue3+h5实现手写签名
  19. www_php168_com,拳学真谛 - 李紫剑文集 - 中国轨迹拳学网 Powered By www.php168.com
  20. 《从零到一》彼得蒂尔 读书笔记(更新ing)

热门文章

  1. python26章_笨方法学Python-26章练习题
  2. SQL Server 2014 导入Excel
  3. Windows WMIC命令使用详解
  4. P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper [模拟退火]
  5. 难以置信,MySQL也可以无损自由切换
  6. Shiro【授权过滤器、与ehcache整合、验证码、记住我】
  7. 利用shell找出15分钟内修改的文件
  8. (转)那些年,被自己的技术者思维虐过的项目经理们
  9. 【转载国外好文】代工开发一个iOS应用没有那么容易
  10. 【lee】关于团队之间交流的一些意见和建议