MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式

下图是示例用到的数据表信息

一、SQL模式

SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。
注意在你使用SQL模式时,你不能使用=或!=;而使用LIKE或NOT LIKE比较操作符。
语法:SELECT 字段 FROM 表 WHERE 某字段 Like 条件
其中关于条件,SQL提供了两种种匹配模式:
  1. 百分号(%):示任意个或多个字符,可匹配任意类型和长度的字符。
  

   示例1:SELECT * FROM character WHERE name LIKE ‘%孙%';即匹配e姓名为“孙行者”,“行者孙,“行者孙”三行数据示例2:SELECT * FROM character WHERE name LIke '%孙%' and name like '%行%'; 即匹配姓名为“孙行者”,“行者孙,“行者孙”三行数据示例3:SELECT * FROM character WHERE name LIke '%孙%行%‘;只能匹配姓名为“孙行者”一行数据

  注意示例2和示例3的区别
  2.下划线(_):表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个中文字符)
  

   示例1:SELECT * FROM character WHERE name LIKE ‘_三_';即把姓名为“唐三藏”的一行数据示例2:SELECT * FROM character WHERE name LIKE ‘_三';即把姓名为“唐三”一行数据

二、正则模式

由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词),以下是正则表达式中常用的字符
  1. “.”匹配任何单个的字符(单字节字符)。一个字符类“[...]”匹配在方括号内的任何字符。
示例1::“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。

  2. “ * ”匹配零个或多个在它前面的东西。
示例:“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。

  3. 注意:正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。
  4. “^”匹配名字的开始
示例:姓名以“孙”开始的 SELECT * FROM role WHERE name REGEXP "^孙";;即匹配姓名为“孙行者”,“孙悟空两行数据

  5. 使用“$”匹配名字的结尾
示例:示例:姓名以“孙”结尾的 SELECT * FROM role WHERE name REGEXP "孙$";;即匹配姓名为“者行孙”,“行者孙”两行数据

三、in查询

叫in查询不是很合理 ,更合理的说法是 :in其实和=类似,区别在于:=后面是一个值。in 后面可以是多个值。
  示例1:select * from role where name in("唐三");即匹配姓名为“唐三”一行数据;示例2:select * from role where name in("唐三","唐三藏");即匹配姓名为“唐三”,“唐三藏”一行数据;示例3:select * from role where name in("唐三","%行者%"),只匹配姓名为“唐三”一行数据;即in查询不支持模糊查询,如示例4示例4:select * from role where name in("%行者%"),无匹配结果

四、like contact模糊查询

CONCAT(str1,str2,…) 函数返回结果为连接参数产生的字符串。
  示例1:select * from role where name like contact("%","三","%");即匹配姓名为“唐三”,“唐三藏”两行行数据;

like contact模糊查询强大的地方在于可以对传进来的参数进行某查询,比如经前端提交上的数据,赋值给参数name,则可以select * from table where name like contact("%",${name},"%")

转载于:https://www.cnblogs.com/geogre123/p/11352839.html

MySQL模糊匹配查询LIKE,REGEXP,IN相关推荐

  1. MySQL模糊匹配中文查询问题 dbutils

    今天遇到一个问题,MySQL中模糊匹配查询(like),使用的是dbutils 匹配查询英文.数字(学生id,学号,昵称)时没有问题,但匹配查询中文(学生姓名)时,查询不到结果 搞了好久,都没有解决, ...

  2. mysql 反向匹配子串,Mysql 模糊匹配(字符串str中是否包含子字符串substr)

    1.LIKE 通常与 % 一同使用,类似于一个元字符的搜索.若substr不在str中,则返回0. SELECT 'test' LIKE '%e%' as `ret`; # 1 SELECT 'tes ...

  3. Excel 中使用SQL 语句查询数据(七)-----用LIKE 运算符进行模糊匹配查询

    这篇博文要和大家分享的是用LIKE 运算符进行模糊匹配查询下图数据源商品代号包含数字的数据. 我们用Microsoft query连接数据源,步骤请参考本系列第一篇博文.语句如下图 其中 LIKE ' ...

  4. mysql 不用斯芬克斯 全局模糊匹配 查询

    mySQL 4.x以上提供了全文检索支持 MATCH --AGAINST 模式(不区分大小写) 建立全文索引的表的存储引擎类型必须为MyISAM 问题是match   against对中文模糊搜索支持 ...

  5. mysql模糊连接查询_mysql 模糊查询 concat()

    concat() 函数,是用来连接字符串. 精确查询: select * from user where name="zhangsan" 模糊查询: select * from u ...

  6. 模糊匹配查询_必须掌握的6个查询函数应用技巧,办公必备,收藏备用!

    在Excel中,有一类函数被称为查找和引用函数,今天,小编给大家分享6个查询函数(Choose.Lookup.Hlookup.Vlookup.Match.Index)的应用技巧,可以收藏备用哦! 一. ...

  7. Excel 2010 SQL应用032 字符范围的模糊匹配查询

    目录 源数据表 解决方案 模糊匹配中字符区间的表示 源数据表 学号 姓名 成绩 20070519 何艳 C 20091884 何冬梅 D 20090790 冯晨 E 20071880 彭勤 B 200 ...

  8. Ext js 下拉框模糊匹配查询,并支持反复输入检索

    记录一下Ext js开发中遇到的下拉框检索需求. 由于数据多,Extjs的组件下拉框显示数据多,不好选择,需要能在输入框输入字段,然后下拉框只显示输入字段相关的内容,进行一个模糊查询,并且能够支持反复 ...

  9. mysql模糊 精准查询_Mysql 精准查询与模糊查询【原创】

    有一次做项目,没有搞清楚精准查询和模糊查询的区别,写的代码不能用,存在bug,后来特地去学习了这两个查询语句 个人理解:精准查询就是查询条件和符合查询条件的一字不差,比如,我要搜索姓名为ada这个关键 ...

最新文章

  1. JZOJ 5167. 【NOIP2017模拟6.26】下蛋爷
  2. php task todolist,Todolist--(4)登录
  3. 用户登录色一句java_SpringBoot中用SpringSecurity实现用户登录并返回其拥有哪些角色...
  4. 人月神话阅读笔记01
  5. php foreach用法和实例
  6. python3生成文件对象(五分钟读懂)
  7. mysql1040_解决mysql 1040错误Too many connections的方法
  8. python与java区别-python(一):python与java语法的异同之处
  9. UICollectionViewController
  10. 扩展卡尔曼滤波器设计
  11. Mac音量微调技巧:如何一点一点的加音量或者减呢?
  12. 移动端开发框架mui介绍
  13. 一文看懂互联网支付系统整体架构
  14. Retina屏兼容处理
  15. 计算机设计大赛报道,我院在中国大学生计算机设计大赛中再创佳绩
  16. 1月16日云栖精选夜读 | 阿里P8架构师谈:Zookeeper的原理和架构设计,以及应用场景... 1
  17. Oracle EBS 名词解释
  18. 遗传算法(GA/NSGA)优化神经网络 GA-BP
  19. 传说中的BNET边缘传输
  20. html网页添加背景音乐

热门文章

  1. 如何在字符串中添加双引号?
  2. Nodejs开发框架Express3.0开发手记–从零开始
  3. 设计模式--6大原则--迪米特法则
  4. [转] 81条经典话语~~~当裤子失去皮带,才懂得什麽叫做依赖
  5. MySql百万数据0秒筛选查询
  6. 精通Android自定义View(二十)自定义仿微信扫一扫效果
  7. 两种方式实现登录跳转新窗体
  8. Python学习日记(3)Python内建函数map()、filter()和匿名函数表达式
  9. Go 语言基础(七) 之 并发和网络
  10. Android 注解的使用与注意事项