Mysql查询语句正则匹配
1.前言
最近遇到MySQL模糊查询的问题,发现MySQL也支持正则表达式。其中,like语句是完全匹配,regexp是部分匹配。
2.完全匹配like
2.1 like模糊查询
like支持的正则包括%和_。其中%代表任意个字符,
_
代表任意一个字符。
2.2 常用方式
_
和%的使用
select * from user where name like '张_林';
代表查询user表中name为张X林的用户信息
select * from user where name like '%三%';
代表查询user表中name含有”三”的用户信息
2.3.escape自定义转义符
如果我就真的要查%或者,怎么办呢?使用escape自定义转义符,escape后面就是转义符,转义字符后面的%或就不作为通配符了,注意前面没有转义字符的%和_仍然起通配符作用
Sql代码
select username from gg_user where username like '%xiao/_%' escape '/';
查找含有xiao_的名字
select username from gg_user where username like '%xiao/%%' escape '/';
查找含有xiao%的名字
3.部分匹配regexp
3.1 基本使用
- 查找以两个数字开头的ptitle字段
SELECT * FROM xm_passport.tb_user_verification where ptitle regexp '^[[:digit:]]{2}'
此处的正则表达式和egrep的大部分类似。
- 开头和结尾 ^与$
- 单个字符
[a-z]
[^a-z]
.(任意单个字符) - 重复之前的字符或字符串次数 * 任意次,? 0次或1次,{m,n}至少m次,至多n次
- 字符与字符集
[:digit:] 数字 [:alpha:] 字母 [:space:] 空格 [:punct:] 标点符号
3.2 regexp的完全匹配
- 查找由3个数字组成的ptitle字段
SELECT * FROM xm_passport.tb_user_verification where ptitle regexp '^[[:digit:]]{3}$'
Mysql查询语句正则匹配相关推荐
- 一条mysql查询语句的执行过程
当我们执行一条MySQL查询语句时,对于客户端而言是一个很简单的过程,但对于服务端来说其内部却会涉及到一些复杂的组件和处理逻辑.了解MySQL语句的内部执行原理,有助于我们更好地去处理一些复杂的SQL ...
- 网上搜集的MySQL查询语句大全集锦(经典珍藏)
原文地址为: 网上搜集的MySQL查询语句大全集锦(经典珍藏) SQL查询语句大全集锦 MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW ...
- mysql 查询语句执行顺序_MySQL 查询语句执行过程
MySQL 查询语句执行过程 Mysql分为server层和存储引擎两部分,或许可以再加一层连接层 连接层(器) Mysql使用的是典型的C/S架构.连接器通过典型的TCP握手完成连接. 需要注的是, ...
- php面试专题---MYSQL查询语句优化
php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...
- mysql 查询语句_MySQL相关(一)- 一条查询语句是如何执行的
前言 学习一个新知识最好的方式就是上官网,所以我先把官网贴出来 MySQL官网 (点击查阅),如果大家有想了解我没有说到的东西可以直接上官网看哈~目前 MySQL 最新大版本为8.0,但是鉴于目前应用 ...
- mysql查询语句详解_基于mysql查询语句的使用详解
1> 查询数据表除了前三条以外的数据. 起初我想到的是这条语句 SELECT * FROM admin WHERE userid NOT IN (SELECT userid FROM admin ...
- php通过数组存取mysql查询语句的返回值
php通过数组存取mysql查询语句的返回值 1.示例1 $res = mysql_query($mysqli, $sql) or die(mysql_error($mysql)); $a=array ...
- java mysql查询语句_Mysql查询语句执行过程
Mysql查询语句执行过程 Mysql分为server层和存储引擎两部分,或许可以再加一层连接层 连接层(器) Mysql使用的是典型的C/S架构.连接器通过典型的TCP握手完成连接. 需要注的是, ...
- MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介
网站或服务的性能关键点很大程度在于数据库的设计(假设你选择了合适的语言开发框架)以及如何查询数据上. 我们知道MySQL的性能优化方法,一般有建立索引.规避复杂联合查询.设置冗余字段.建立中间表.查询 ...
最新文章
- 4.65FTP服务4.66测试登录FTP
- iOS:NSBundle的具体介绍
- BZOJ.1109.[POI2007]堆积木Klo(DP LIS)
- scrapy提取数据
- 小白学python买什么书-0基础小白学python有没有什么书可以推荐的?
- linux删除旧网卡,如何删除旧网卡驱动
- 2012秋江苏省计算机二级上机试题,江苏省高校计算机等级考试二级2012秋资料.doc...
- 现在好用的mysql客户端_还在用 Navicat 的,可以试试这几款免费且好用的 MySQL 客户端...
- 一个html有几个css,几个CSS的黑科技_html/css_WEB-ITnose
- Android 上滑背景变淡,在Android中,如何平滑地将背景从一种颜色淡化到另一种颜色? (如何使用线程)...
- 多个域名要选择合适的SSL证书
- 基于QGIS初探PostgreSQL的PostGIS插件,包括YUM和编译安装PostGIS
- python 单例模式
- 为什么 React Native 连遭 Airbnb、Udacity 抛弃?
- Jquery基础笔记
- JS 幻灯片代码(含自动播放)
- Android修炼之道—自定义控件 (300喵喵币)
- zigbee网络各层的主要功能
- 百度echart世界各国及国内省市经纬度坐标
- 基于两输出一输入BP神经网络的传感器检测数据融合(附带MATLAB代码)