Mysql——通配符和正则表达式的使用
1.like操作符和百分号通配符
%表示任何字符出现任意次数。
查询出表TABLE中NAME字段中任意位置包含i的行:
select * from TABLE where NAME like '%i%'
查询出表TABLE中NAME字段中开头位置包含i的行:
select * from TABLE where NAME like 'i%'
查询出表TABLE中NAME字段中结尾位置包含i的行
select * from TABLE where NAME like '%i'
注意:%不能匹配NULL;有一些字段首尾可能会出现空格,为了避免影响匹配结果,可以是同LTrim和RTrim函数去掉首尾的空格。
2.下划线通配符
下划线通配符只代表一个字符。
使用方法和%一样,比如查询出表TABLE中NAME为‘AAA’开头的四个字母的行
select * from TABLE where NAME like 'AAA_'
3.正则表达式
除了使用like进行模糊匹配,还可以使用正则表达式进行模糊匹配。
正则表达式操作符:REGEXP
3.1基本字符匹配
查询出表TABLE中,字段NAME以A结尾的且只有两个字母的所有行:
select * from TABLE where NAME regexp '.A'
.是正则表达式的特殊字符,代表匹配任意一个字符。
3.2进行或(OR)匹配
查询出表TABLE中,字段NAME为AAA或BBB的行:
select * from TABLE where NAME regexp 'AAA|BBB'
|为正则表达式的或操作符。
3.3匹配多个字符
查询出表TABLE中,字段NAME以A或B或C开头,且结尾为DD的行:
select * from TABLE where NAME regexp '[ABC]DD'
[ABC]定义一组字符,意思是:匹配A或B或C。
3.4范围匹配
查询出表TABLE中,字段NAME以1到9开头,且结尾为A的行:
select * from TABLE where NAME regexp '[1-9]A'
[1-9]意为:匹配1到9任意数字,[a-z]意为匹配任意字符。
3.5匹配特殊字符
这种问题几乎在每种语言中都会出现,即需要查询的内容中包含特殊字符。这时候就需要转义了。
在mysql中转义符为\\
查询出表TABLE中,NAME字段包含.的行:
select * from TABLE where NAME regexp '\\.'
3.6正则表达式常用元字符

注意:正则表达式匹配不区分大小写,如果需要区分在regexp后面加上关键字:binary
Mysql——通配符和正则表达式的使用的更多相关文章
- MySQL通配符与正则表达式
通配符 通配符必须全文匹配时才为真,使用LIKE关键字 字符 示例 含义 _ "a_b" 任意一个字符"axb",其中x可以使任意字符,包括汉字 % " ...
- MySQL中REGEXP正则表达式使用大全
REGEXP在mysql是用来执行正则表达式的一个函数 像php中的preg之类的函数了,regexp正则函数如果只是简单的查询使用like即可,但复杂的还是需要使用regexp了,下面我们来看看. ...
- mysql通配符使用
mysql通配符使用: w3cchool 在mysql查询中,经常会用到通配符,而且mysql的通配符和pgsql是有所不同的,甚至mysql中还可以使用正则表达式.本文就为大家带来mysql查询中通 ...
- MySQL中的正则表达式
正则表达式是用正则表达式语言来建立 基本字符的匹配 .是正则表达式语言中的一个特殊的字符,它表示匹配任意一个字符 在LIKE和REGEXP之间有一个重要的差别,LIKE匹配整个列,如果被匹配的文本仅在 ...
- MySQL学习之正则表达式篇
正则表达式(REGEXP) 1.简介 正则表达式是用来匹配列值的特殊字符集合,许多领域都有涉及, MySQL使用的正则表达式仅为其一个小小的子集. 2.基本字符匹配 2.1筛选包含特定字符串的信息 / ...
- linux中的通配符与正则表达式
在linux中,有通配符及正则表达式,那么什么是通配符和正则表达式,什么时候用? 通配符 它是由shell解析,并且一般用于匹配文件名,实际上就是shell解释器去解析的特殊符号,linux系统通 ...
- MySQL 通配符学习小结
MySQL 通配符 SQL的模式匹配同意你使用"_"匹配不论什么单个字符,而"%"匹配随意数目字符(包含零个字符).在 MySQL中,SQL的模式缺省是忽略大写 ...
- MySQL 通配符学习总结
MySQL 通配符 SQL您同意使用模式匹配"_"无论单个字符相匹配,和"%"匹配随意数目字符(包含零个字符). 在 MySQL中.SQL的模式缺省是忽略大写和 ...
- linux通配符与正则表达式
通配符 * 任意字符,可重复多次 ? 任意字符,重复一次 [] 代表一个字符 举例: [a,b,c] 表示abc中任意一个 通配符的作用是用来匹配文件名的 正则表达式 正则表达式 ...
随机推荐
- kubernetes 存储volume,pv和pvc的使用
emptyDIR 临时目录 hostPath :使用主机的路径 网络存储: 传统的设备存储:NAS,SAN 分布式存储:glusterfs,rbd,cephfs 云存储:EBS,Azure,阿里云的 ...
- 百度ueditor实现word图片自动转存
官网地址http://ueditor.baidu.com Git 地址 https://github.com/fex-team/ueditor 参考博客地址 http://blog.ncmem.com ...
- 单调栈求全1(或全0)子矩阵的个数 洛谷P5300与或和 P3400仓鼠窝
爆零好爽,被中学生虐好爽,还好我毕业得早 求全1(或全0)子矩阵的个数,看了题解有好几种思路,我学了三种,但有两种不是很理解,而且也没另外那个跑得快,所以简单讲述一一下我会的那种来自Caro23333 ...
- 在windows下安装lxml 报错error: Unable to find vcvarsall.bat
刚开始安装 ,我是使用命令pip install lxml直接进行安装,不过出错了 error: Unable to find vcvarsall.bat 解决方案: 1.首先安装wheel,pip ...
- Linux设备驱动程序 之 度量时间差
概述 内核通过定时器中断来跟踪事件流: 时钟中断由系统定时硬件以及周期性的间隔产生,这个间隔由内核根据HZ的值设定,HZ是一个细节结构有关的常数:作为一般性规则,即使知道对应平台上的确切HZ值,也不应 ...
- php 设置error_reporting(0)和ini_set('display_errors', 0)之后,还是显示错误
php 5.4 apache 2.2 关闭错误报告和错误显示 依然会显示错误 按照我的理解,error_reporting(0)之后就应该不会显示错误了,这是怎么回事? 后来我又试着在php.ini者 ...
- 报错1251 - Client does not support authentication protocol 解决办法
# 1.容器中登录mysql,查看mysql的版本 status; # 2,进行授权远程连接(注意mysql 8.0跟之前的授权方式不同) GRANT ALL ON *.* TO 'root'@'%' ...
- 微信小程序wxss样式详解
一.wxml 界面结构wxmL比较容易理解,主要是由八大类基础组件构成: 一.视图容器(View Container): 二.基础内容(Basic Content) 组件名 说明 组件名 说明 vie ...
- docker安装并设置开机启动(CentOS7/8)
CentOS7.2 docker分为CE和EE版本,EE版本收费,一般我们使用CE版本就满足要求了 docker安装及启动 docker安装很简单,直接使用如下命令安装即可,安装后的docker版本即 ...
- Android:通过systrace进行性能分析
一.Systrace 简介 Systrace 允许您在系统级别(如SurfaceFlinger.WindowManagerService等Framework部分关键模块.服务.View系统等)收集和检 ...