Mysql正则

摘自:http://www.runoob.com/mysql/mysql-regexp.html

模式 描述
^ 匹配输入字符串的开始位置。如果设置了 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$‘;
时间: 2024-10-04 05:28:03

Mysql正则的相关文章

mysql 正则

mysql 正则学习 基本字符匹配 select desk from dealer_info where desk regexp "82107777"; . 表示匹配任意一个字符 select name from dealer_info where name regexp "a."; MySQL中的正则表达式匹配不区分大小写, 可以使用 binary来区分 select name from dealer_info where name regexp BINARY &

mysql正则查询 模糊查询

-- ==============正则查询================ /* SQL默认是忽略大小写的 正则模式使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词).正则即字段值包含正则的内容即可 . 匹配任何单个的字符,表示任意单字符 [...] 匹配包含方括号内某单个字符的字符串,[0-9]匹配0到9之间的某个数字 * 匹配零个或多个在它前面的字符 {n} 匹配n个在它前面的字符 如果希望大小写都匹配上可以这样写.[aA] 匹配大小写的 a,[a

Mysql 正则获取字段的交集【转】

问题描述 比如table1中有两条记录 name no a    2,9 b    8,10 然后有一串字符串,是0,1,2,3,4 然后通过一条sql,找出no为2,9的记录来``` 因为字符串中有2,数据中也有2 详细解释 ------------------------------ 表的字段就是 name  no     a     2,9    b     8,10   字符串是str="0,1,2,3,4" 接下来就是查 no字段里跟str里有交集的记录 查询的结果就是nam

mysql数据库常用命令笔记

连接数据库:mysql -h localhost -u root -p 000000 退出:exit;    \q;    quit; SET foreign_key_checks = 0; 禁用外键 ->表示当前命令没有执行或者等待命令执行符来确认: \c 用来清除->效果 '>.">  表示之前的mysql语句缺少引号 Informaction_schema  主要存储数据库中数据库对象信息 表信息 列信息 权限信息  数据字典 Mysql库.存储了mysql的权限信

mysql高级排序&amp;高级匹配查询示例

在大多数应用场景下,我们使用mysql进行查询时只会用到'=', '>' , '<' , in, like 等常用的方法,看起来,大多数情况下,已经足以应付我们的小型应用了.不过,在一些特殊场景,则需要特殊的查询方式了. 1. 根据状态来排序的查询 假设现在一个记录有四种状态,未处理(0).正在处理(2).处理成功(1).处理失败(4),之所以他们的值是这个样子,是因为我们一般情况下是不会用它去排序,所以自然的就想到这样的一些值赋予意义.但是,在排序的时候怎么处理呢? 假如要求的先后顺序是这样

MySQL中REGEXP正则表达式使用大全

REGEXP在mysql是用来执行正则表达式的一个函数 像php中的preg之类的函数了,regexp正则函数如果只是简单的查询使用like即可,但复杂的还是需要使用regexp了,下面我们来看看. MySql用户手册建议,在构造简单查询时,仍使用通配符. 如:Select [*|fieldname list] From [tablename] where [fieldname] like ["%someletter"|"%someletter%","_&

05: MySQL高级查询

目录 1.1 GROUP BY分组使用 1.2 mysql中NOW(),CURDATE(),CURTIME()的使用 1.3 DATEDIFF() 函数 1.4 DATE_FORMAT() 以不同格式显示时间 1.5 MySQL 正则表达式 1.1 GROUP BY分组使用 GROUP BY介绍 1. GROUP BY 语句根据一个或多个列对结果集进行分组,在分组的列上我们可以使用 COUNT, SUM, AVG,等函数. 2. 涉及到的操作符:GROUP BY,HAVING,ORDER BY,

批量创建数据库和批量数据恢复

近期公司有一个数据库需要迁移,但是里面创建的数据库比较多,我们采取脚本将库单独备份,然后上传到另一台主机,新建数据库,然后恢复数据库.将自己写的几个小脚本粘贴到此, 分库压缩备份 #/bin/sh #version 0.1 MYUSER=mysqlback [email protected] #SOCKET=/data/3306/mysql.sock MYLOGIN="mysql -u$MYUSER -p$MYPASS " MYDUMP="mysqldump -u$MYUSE

索引与sql优化问题汇总

各位亲爱的云友, 非常感谢大家踊跃参加DBA专家门诊一期:索引与sql优化,很多云友都提出了自己的问题,门诊主任医师玄惭对大家提的问题一一作了解答.现已整理好这些问题,分享在此,欢迎来拿,绝对干货! 篇幅较长,耐心细看! 我们将赠送每位提问者每人一本凌云杂志第四期,请各位以论坛短消息形式将姓名.电话.地址发送给管理员xiaofanqie. 啊里新人(Q1):索引我一般都是只有主键,这玩意儿,是不是越少越好? 玄惭(A1):在日常的业务开发中,常见使用到索引的地方大概有两类: 第一类.做业务约束需