mysql正则表达式搜索

发布时间:2019-10-27编辑:脚本学堂
介绍下有关mysql中用正则表达式进行搜索与匹配的内容,有需要的朋友,参考下吧。

语法:
 

复制代码 代码示例:
---不区分大小
select * from table_name where column_name regexp '正则表达式'
---区分大小写
select * from table_name where column_name regexp binary '正则表达式'

支持的正则表达式符号:
 

.    任意字符
|    或,如:a|b|c
[]   范围,比如:[a-z],[0-9],[^0-9]不包括0-9字符
^   在[]中表示排除,否则表示匹配开头
//   转义,如:///表示匹配/,//.表示匹配.
*   0个或多个
+   1个或多个
?   0个或1个
{n}  n个
{n,}  不少于n个
{n,m} n到m个
$  匹配结尾

[:alnum:]  任意字母和数字,相当于[a-zA-Z0-9]
[:alpha:]   任意字符[a-zA-Z]
[:blank:]   空格和制表[//t]
[:cntrl:]     ascii控制字符
[:digit:]     数字[0-9]
[:graph:][:print:]   可打印字符
[:lower:]   小写字母
[:upper:]   大写字母
[:xdigit:]   十六进制数[a-fA-F0-9]

例子:
 

复制代码 代码示例:
[[:digit:]]{4},匹配任意4位数字

有关 mysql 正则查询的小结。
1,以“a”开头的名字,使用“^”匹配名字的开始并且“[aA]”匹配小写或大写的“A”:SELECT * FROM wyztester WHERE name REGEXP "^[aA]";
2,以“ceshi”结尾的名字,使用“$”匹配名字的结尾:SELECT * FROM wyztester WHERE name REGEXP "ceshi$";
3,包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和3个“a”实例在两者之间:SELECT * FROM wyztester WHERE name REGEXP "^aaa$";4 也可以使用“{n}”“
重复n次”操作符重写先前的查询:
 

复制代码 代码示例:
SELECT * FROM wyztester WHERE name REGEXP "^a{5}$";

就介绍这些吧,希望有助于大家理解与掌握mysql正则查询的相关内容。
脚本学堂,祝大家学习进步。