一、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的区别的更多相关文章

  1. mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记

    mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...

  2. MySQL学习笔记一

    MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...

  3. MySQL学习笔记-事务相关话题

    事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...

  4. 【mysql学习笔记整理】

    /*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作#创建#数据库的创建USE mysql;CREATE DATABASE db_x;#删除#删除数据库DROP DATABASE ...

  5. 数据库MySQL学习笔记高级篇

    数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...

  6. 一千行MySQL学习笔记 (转)

    出处:  一千行MySQL学习笔记 /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权 ...

  7. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

  8. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  9. Mysql学习笔记(一)数据类型

    原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型     Mysql数据类型             含义(有符号)     tinyint(m ...

  10. 初识mysql学习笔记

    使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...

随机推荐

  1. JavaScript匿名函数知多少

    在一些Javascript库中可以看见这种写法: function(){ //所有库代码代码 }(); 这样写的一个目的是——封装. JavaScript并不是面向对象的,所以它不支持封装.但是在不支 ...

  2. jquery如何实现点击LI标签和下面的LI互换顺序? 超简单代码

    转: jquery如何实现点击LI标签和下面的LI互换顺序? 上面的效果涉及jquery的两个方法: next()  :  获得匹配元素集合中每个元素紧邻的下一个同胞元素. after() :在被选元 ...

  3. Hadoop基础-Protocol Buffers串行化与反串行化

    Hadoop基础-Protocol Buffers串行化与反串行化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们之前学习过很多种序列化文件格式,比如python中的pickl ...

  4. SQL优化:

    今日给人查找数据,时间关系,写个比较粗暴的SQL语句:   #2s587ms#直接将所有表关联,比较粗暴 select go.businessId,dd.dict_namefrom fn_xte.gt ...

  5. Java上传文件夹(Jersey)

    背景介绍:公司要在CMS系统上为运营人员提供一个功能供运营人员将做好的活动页面上传到阿里云存储上,上传的内容为一个文件夹,文件夹内部有.html网页,JS文件夹下有JS文件,CSS文件夹下有样式表,I ...

  6. TreeSet按value排序

    今天学习到TreeSet,但是它是按照key的值来排序的,那如果我们想要按照value的值排序呢?这个问题我上网看了好久,终于找到一个比较易懂的例子: 例:(统计输入数字的个数) 话不多说,看代码就懂 ...

  7. 【Foreign】Rectangle [KD-tree]

    Rectangle Time Limit: 50 Sec  Memory Limit: 512 MB Description Input Output Sample Input 0 4 2 0 2 1 ...

  8. 【算法专题】后缀自动机SAM

    后缀自动机是用于识别子串的自动机. 学习推荐:陈立杰讲稿,本文记录重点部分和感性理解(论文语言比较严格). 刷题推荐:[后缀自动机初探],题目都来自BZOJ. [Right集合] 后缀自动机真正优于后 ...

  9. 20145234黄斐《Java程序设计》第七周

    教材学习内容总结 第十二章部分 - Lambda 认识Lambda语法 Lambda去可以重复,符合DRY原则,而且Lambda表达式可读性更好,操作更简单 匿名类型最大的问题就在于其冗余的语法,la ...

  10. mysql 时区设置

    ##查看当前时间 select curtime(); ##查看当前时区设置 show variables like "%time_zone%"; ##修改mysql全局时区为北京时 ...