MySQL学习笔记:like和regexp的区别
一、like关键字
like有两个模式:_和%
- _:表示单个字符,用来查询定长的数据
select name from table where name like '陈__';
- %:表示0个或多个任意字符
select name from table where name like '陈%';
select name from table where name like '%宏%';
二、regexp关键字
1.基本字符匹配
select * from table where col regexp '.000';
2.like匹配整个值 通配符%
3.regexp可使用正则自由定制 定位符号^$
4.如果要区分大小写,应该使用BINARY关键字,如where xxx REGEXP BINARY 'Hello.000'
5.使用|实现or效果
select * from table where col regexp '1000|2000';
6.匹配几个字符之一,用[和]扩起来
select * from table where col regexp '[abcde]';
7.匹配范围:[0-9] [A-Z] [a-z]
- [^0-9] ^表示非,即匹配不是0-9
- 后面的比前面大
select * from table where col regexp '[0-9]Ton';
8.匹配特殊字符使用\\进行转义
- \\.能够匹配.
- \\f换页
- \\n换行
- \\r回车
- \\t制表
- \\纵向制表
注意:
a)为了匹配\本身,需要使用\\\
b)在一般情况下正则表达式的转义加一个“\”就可以了,在MySQL中需要加两个。
9.匹配字符类(Posix字符类)

使用的时候需要外面加一层[],例如[[:digit:]]
select * from table where col regexp 'name[[:digit:]]';
10.匹配多个实例
- * 0或多个
- + 1或多个
- ? 0或1个
- {n} 指定n个
- {n,} 不少于n个
- {n,m} n-m个
select * from table where col regexp '[0-9]{1,3}';
11.定位符
- ^ 开始
- $ 结尾
- [[:<:]] 词的开始
- [[:>:]] 词的结尾
12.^有两个用法,一个是非,一个是文本的开始,用[]中表示非,否则是文本的开始。
13.MySQL的正则比较简化,没有惰性匹配/贪婪匹配,[]内不支持\w\s\d这种语法,也不支持中文。
14.这两种模式不要混着用,like模式是不支持正则表达式的,REGEXP模式也不认识_和%。
15.注意:regexp == rlike 同义词 not like not regexp
16.in不支持模糊查询,如:
select * from table where name in ('%宏%');
17.like concat('%',name,'%')作用在于name为变量,在传参的时候方便。
END 2018-06-01 15:00:02
MySQL学习笔记:like和regexp的区别的更多相关文章
- mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记
mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...
- MySQL学习笔记一
MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...
- MySQL学习笔记-事务相关话题
事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...
- 【mysql学习笔记整理】
/*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作#创建#数据库的创建USE mysql;CREATE DATABASE db_x;#删除#删除数据库DROP DATABASE ...
- 数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...
- 一千行MySQL学习笔记 (转)
出处: 一千行MySQL学习笔记 /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权 ...
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- Mysql学习笔记(一)数据类型
原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型 Mysql数据类型 含义(有符号) tinyint(m ...
- 初识mysql学习笔记
使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...
随机推荐
- R安装时出现辑程包不存在,解决方法
R > -------------------------------------------------[解决方案]1.使用命令单独安装caret,安装的时间很长.install.packag ...
- 安装JDK、Tomcat、Maven’详细步骤
安装JDK 1.首先在官网下载JDK1.8包并解压(随便你装哪个版本) 2.下面开始配置环境变量 此电脑-右键-属性-高级系统配置 点击环境变量 将会看到以下界面 在系统变量下“新建” 变量名(J ...
- 130. Surrounded Regions(M)
130.Add to List 130. Surrounded Regions Given a 2D board containing 'X' and 'O' (the letter O), capt ...
- bzoj 1798 线段树
1798: [Ahoi2009]Seq 维护序列seq Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 7163 Solved: 2587[Submit ...
- Django中@login_required用法简介
我们在网站开发过程中,经常会遇到这样的需求: 用户登陆系统才可以访问某些页面 如果用户没有登陆而直接访问就会跳转到登陆界面,而不能访问其他页面. 用户在跳转的登陆界面中完成登陆后,自动访问跳转到之前访 ...
- Java基础-IO流对象之打印流(PrintStream与PrintWriter)
Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(P ...
- webapi框架搭建-安全机制(四)-可配置的基于角色的权限控制
webapi框架搭建系列博客 在上一篇的webapi框架搭建-安全机制(三)-简单的基于角色的权限控制,某个角色拥有哪些接口的权限是用硬编码的方式写在接口上的,如RBAuthorize(Roles = ...
- Java入门系列(二)Java常用关键字
53个关键字 在JAVA中目前一共有53个关键字:其中由51+2个保留字=53个关键字 访问控制 private protected public default 类.方法和 ...
- KMP初探·总结
昨天自己乱搞了一天kmp之后终于弄懂了kmp 的基本原理. 早上看见了好多只讲原理和数学公式推导的博客,感觉很坑,无法理解.后来找到了一篇图文并茂的博客,感觉很快就理解了. KMP的精髓在于n ...
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛:Frequent Subsets Problem (状态压缩)
题目链接 题目翻译: 给出一个数n,和一个浮点数a,数n代表全集U = {1,2,...,n},然后给出 M个U的子集,如果一个集合B(是U的子集),M个集合中有至少M*a个集合包含B, 则B这个集合 ...