MySql 使用正则表达式
MySql 用where 子句对正则表达式提供了支持,允许你指定正则表达式,注意mysql仅支持多数正则表达式实现的一个很小的子集。
1.基本字符匹配:
SELECT prod_name
FROM products
WHERE prod_name REGEXP '1000';
mysql 中正则表达式匹配不区分大小写,为区分大小写,可使用BINARY 关键字,如:
WHERE prod_name REGEXP BINARY 'JetPak .000'。
2. OR 匹配
WHERE prod_name REGEXP '1000|2000';
| 为正则表达式的OR操作符。它表示匹配基中之一。多个OR条件可以并入单个正则表达式,例如:'1000|2000|3000' 将匹配1000或2000或3000.
3.匹配几个字符之一
WHERE prod_name REGEXP '[123] Ton'
[123] 定义一组字符,它的意思是匹配1或2或3。[]是另一种形式的OR语句,事实上,正则表达式[123]Ton 为[1|2|3]Ton 的缩写。
为否定一个字符集,在集合的开始处放置一个^即可,因此[^123]匹配除1,2,3字符之外的任何东西。
4.匹配范围
可使用 - 来定义一个范围,如[0-9] 表示匹配0到9之间的任一个数字。范围不限于完整的集合,[1-3]和[6-9]也是合法的范围。此外,范围不一定只是数值的,[a-z]匹配任意一个字母字符。
WHERE prod_name REGEXP '[1-5] Ton'
5.匹配特殊字符
为了匹配特殊字符,必须用\\为前导进行转义,\\- 表示查找-,\\. 表示查找. 。
WHERE vend_name REGEXP '\\.'
为了匹配反斜杠(\)字符本身,需要使用\\\。
6.定位符
为了匹配特定位置的文本可以使用如下定位符:
| 元字符 | 说明 |
| ^ | 文本的开始 |
| $ | 文本的结尾 |
例如,你想找出以一个数(包括以小数点开始的数)开始的所有产品:
WHERE prod_name REGEXP '^[0-9\\.]'
^有两种用法:在集合中(用[和]定义),用它来否定该集合,否则用它来指定串的开始。
7.重复元字符
| . | 匹配任意一个字符 |
| * | 匹配0个或多个字符 |
| + | 匹配1个或多个字符(等于{1,} |
| ? | 匹配0个或1个字符(等于{0,1} |
| {n} | 指定数目的匹配 |
| {n,} | 不少于指定数据的匹配 |
| {n,m} | 匹配数目的范围(m不超过255) |
WHERE prod_name REGEXP '\\([0-9] sticks?\\)'
\\( 匹配字符(,[0-9]匹配任意一个数字,sticks? 匹配stick和sticks (s 后的?使s可选),\\) 匹配字符)。
8.简单的正则表达式测试
可以在不使用数据库表的情况下用SELECT来测试正则表达式。REGEXP 在匹配成功时总是返回1,匹配不成功时返回0,可以用带文字串的REGEXP来测试表达式,并试验它们。相应的语法如下:
SELECT 'hello' REGEXP '[0-9]';
这个例子显示将返回0(因为文本hello中没有数字)。
MySql 使用正则表达式的更多相关文章
- mysql中正则表达式的使用
mysql中正则表达式的性能要高于like,所以这里总结一下正则表达式的使用. 正则表达式的模式及其含义: 下面举例说明其用法: 建表student: create table student(id ...
- MYSQL使用正则表达式过滤数据
一.正则与LIKE的区别 Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符.字符串.例如:select * from wp_posts where post_name REGEXP ...
- MySQL中正则表达式
正则表达式是用来匹配文本的特殊的串(字符集合),将一个模式(正则表达式)与一个文本串进行比较 从文本文件中提取电话号码 查找名字中间带有数字的文件 文本块中重复出现的单词 替换页面的URL为这些URL ...
- Mysql(四)正则表达式
一.正则表达式 1.使用like可以进行不确定的查询(模糊查询),然而,模糊 查询的功能有限,当需要进行更加复杂的模式匹配时,可以 使用正则表达式来完成. 2.正则表达式可以对指定的字符串与模式之间执 ...
- MySQL之正则表达式
一.介绍 正则表达式用来描述或者匹配符合规则的字符串.它的用法和like比较相似,但是它又比like更强大,能够实现一些很特殊的规则匹配:正则表达式需要使用REGEXP命令,匹配上返回"1& ...
- mysql的正则表达式
所谓正在表达式,就是通过模式去匹配一类字符串.MySQL支持的模式字符如下表所示: MySQL支持的模式字符 模式字符 含义 ^ 匹配字符串的开始部分 $ 匹配字符串的结束部分 . 匹配字符串中的任意 ...
- 果然学习好是有道理的,学习Mysql与正则表达式笔记
正则表达式是用来匹配文本的特殊的字符集合,将一个正则表达式与文本串进行比较,Mysql中用where子句提供支持,正则表达式关键字:regexp1.使用‘|’匹配两个串中的一个 2.使用‘[]’匹配几 ...
- MySQL使用正则表达式比较字段中的数字
今天遇到一个问题,需要对表中的一个类json字段的内容进行筛选,而筛选的条件是值要大于某个值.因为值的位数并不确定,考虑使用正则表达式进行筛选. 字段格式 类json的key-value字段,示例如下 ...
- MySQL的正则表达式的LIKE和REGEXP区别
LIKE匹配整个列.如果被匹配的文本在列值 中出现,LIKE将不会找到它,相应的行也不被返回(除非使用 通配符).而REGEXP在列值内进行匹配,如果被匹配的文本在 列值中出现,REGEXP将会找到它 ...
随机推荐
- 【网络收集】MySql中IS NOT NULL与!=NULL的区别
在mysql中,筛选非空的时候经常会用到is not null和!=null,这两种方法单从字面上来看感觉是差不多的,其实如果去运行一下试试的话差别会很大!为什么会出现这种情况呢?null 表示什么也 ...
- asp.net sql无限极分类实例程序
数据库结构 代码如下 复制代码 create table category( id int, clsno ...
- 第七篇、使用UIView的animateWithDuration方法制作简易动画
import UIKit class LolitaCircleButton: UIButton { private var color: UIColor private var imageURL: S ...
- Page 的生命周期学习小结(翻译兼笔记)
初始化(Initialization) 页面被请求时,第一个被执行的总是下面接着执行的是 接着是 然后是 恢复和加载(Restore and Load) 接下来的 ViewState 被取回后,接着 ...
- XML解析——Java中XML的四种解析方式
XML是一种通用的数据交换格式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便.XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已. XML的解析方式分为四 ...
- java集合 collection-list-ArrayList 去除ArrayList集合中的重复元素。
import java.util.*; /* 去除ArrayList集合中的重复元素. */ class ArrayListTest { public static void sop(Object o ...
- 利用mysqld_multi启动管理多实例
利用mysqld_multi启动管理多实例 官方管理多实例的一个脚本peer #将之前的目录清空 [root@mysql01 mysql]# tree /data/mysql/ /data/mysql ...
- WMB代理无法正常启动时的解决方案。
情况:执行了启动命令,查看状态的时候 还是停止..再启动,又说已经启动了.. 解决方案:正常情况在hosts文件加一条记录:主机IP和hostname的映射关系就好了
- ecshop中无限处理分类
数据库表记录结构 <?php $sql = "SELECT c.cat_id, c.cat_name, c.measure_unit, c.parent_id, c.is_show, ...
- nginx 配置文件
#基于ip设置 server{ listen 80; server_name 192.168.116.129; location /{ root /usr/etc/ngin/html/ip; inde ...