mysql模糊查询like/REGEXP
(1)like / not like
MySql的like语句中的通配符:百分号、下划线和escape

%:表示任意个或多个字符。可匹配任意类型和长度的字符。
Sql代码
select * from user where username like '%huxiao';

select * from user where username like 'huxiao%';

select * from user where username like '%huxiao%';
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件

SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE ‘%猫%’

若使用 SELECT * FROM [user] WHERE u_name LIKE ‘%三%猫%’

虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。

_:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个中文字符)

Sql代码
select * from user where username like '_';

select * from user where username like 'huxia_';

select * from user where username like 'h_xiao';

如果我就真的要查%或者_,怎么办呢?使用escape,转义字符后面的%或_就不作为通配符了,注意前面没有转义字符的%和_仍然起通配符作用
Sql代码
select username from gg_user where username like '%xiao/_%' escape '/';

select username from gg_user where username like '%xiao/%%' escape '/'; 意思就是说/之后的_不作为通配符

(2)正则表达式

规则如下:

^ 匹配字符串的开始部分

$ 匹配字符串的结束部分

. 匹配任何字符(包括回车和新行)

a* 匹配0或多个a字符的任何序列

a+ 匹配1个或多个a字符的任何序列

a? 匹配0个或1个a字符

de|abc 匹配序列de或abc

(abc)* 匹配序列adc的0个或者多个实例

{n}、{m,n} {n}或{m,n}符号提供了编写正则表达式的更通用方式,能够匹配模式的很多前述原子(或“部分”)。m和n均为整数。

a* 可被写为a{0,}

a+ 可被写为a{1,}

a? 可被写为a{0,1}

[a-dX] 匹配任何是a,b,c,d或者X的字符,两个其他字符之间的’-'字符构成一个范围

[^a-dX] 匹配任何不是a,b,c,d或者X的字符,前面的字符’^'是否定的意思

举例如下:
^,匹配字符串开始位置,还是上面的例子,查询所有姓王的人名

select name from 表名 where name regexp '^王';

$,匹配字符串结束位置,如查询所有姓名末尾是“明”的人名

select name from 表名 where name regexp '明$';

.,匹配除\n之外的任意单个字符,类似于_,就不写sql语句了

[……],匹配[]中包含的任何一个字符,abcdef……xyz可以简写为[a-z],0123456789简写成[0-9],如查询出w/z/s开头的的人名

select name from 表名 where name regexp '^[wzs]';

[^……],匹配不包含在[]的字符,如查询出除了w/z/s开头之外的人名

select name from 表名 where name regexp '^[^wzs]';

a|b|c,匹配a或b或c,如将绩效为A-或A或A+的员工查出来,假设绩效列名performance

select performance from 表名 where performance regexp 'A-|A|A+';
*,重复0次或多次,熟悉javascript正则的同学都知道

'str*'可以匹配st/str/strr/strrr……

?,重复0次或1次

'str?'可以匹配st/str

mysql的模糊查询的更多相关文章

  1. mysql中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  2. Mybatis使用MySQL进行模糊查询时输入中文检索不到结果

    Mybatis使用MySQL进行模糊查询时输入中文检索时,需要在jdbcURL后增加参数   ?useUnicode=true&characterEncoding=UTF-8

  3. mysql 实行模糊查询 一个输入值匹配多个字段和多个输入值匹配一个字段

    mysql 实行模糊查询  一个输入值匹配多个字段 MySQL单表多字段模糊查询可以通过下面这个SQL查询实现 为啥一定要150字以上  真的麻烦  还不让贴代码了 SELECT * FROM `ma ...

  4. 下面介绍mysql中模糊查询的四种用法:

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  5. 【mysql】模糊查询的使用

    1.like/not like 关键字的模糊查询(SQL模式) 基础模板:  SELECT  *  FROM   test  WHERE name LIKE '%你好_'     :匹配       ...

  6. mysql关联模糊查询他表字段

    如下:订单表关联了用户的id(多个),要根据用户名模糊查询订单信息,但是订单表只有id.创建视图用不着,咱也没权限.于是如下 SELECT * FROM ( SELECT cu.id AS 'id', ...

  7. mybatis中使用mysql的模糊查询字符串拼接(like)

    方法一: <!-- 根据hid,hanme,grade,模糊查询医院信息--> 方法一: List<Hospital> getHospitalLike(@Param(" ...

  8. mysql精准模糊查询使用CONCAT加占位符(下划线“_”)的使用,直接限定了长度和格式

    比如现在有张表t_user,如下:(表中只是引用某某某的话,并无恶意) id name 1 司马懿 2 司马老贼 3 司马老贼OR司马懿 4 司马大叔 1.模糊查询一般用的模糊查询都是like关键词, ...

  9. MySql like模糊查询使用详解

    一.SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符).在 MySQL中,SQL的模式缺省是忽略大小写的.下面显示一些例子.注意在你使用SQL模式时,你不能使用 ...

随机推荐

  1. Sperner定理及其证明

    额,最近看到了一个十分有趣的定理--Sperner定理.其实这个定理在OI中没什么用处,因此我都没把这篇文章放到我的OI标签里(不知道在MO中是否有用?)但是觉得它很有趣于是就过来写一下. 由于博主太 ...

  2. Java基础学习总结(39)——Log4j 1使用教程

    1. 配置文件 Log4J配置文件的基本格式如下: #配置根Logger log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderN ...

  3. (23)Spring Boot启动加载数据CommandLineRunner【从零开始学Spring Boot】

    [Spring Boot 系列博客] )前言[从零开始学Spring Boot] : http://412887952-qq-com.iteye.com/blog/2291496 )spring bo ...

  4. mysql优化 explain index

    本文章属于转载,尊重原创:http://www.2cto.com/database/201501/369135.html 实验环境: 1.sql工具:Navicat 2.sql数据库,使用openst ...

  5. 【ACM】hdu_1092_A+BIV_201307261630

    A+B for Input-Output Practice (IV)Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3276 ...

  6. 洛谷—— P2014 选课

    https://www.luogu.org/problem/show?pid=2014 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课 ...

  7. String 经常用法最优算法实现总结 (一)

    <pre name="code" class="java"><span style="font-family: Arial, Hel ...

  8. 学习日记之原型模式和Effective C++

    原型模式(Prototype):用原型实例制定创建对象的种类,而且听过拷贝这些原型创建新的对象. 浅复制:假设字段是值类型的,则对该字段运行逐位复制.假设字段是引用类型.则复制引用但不复制引用的对象. ...

  9. [cocos2dx笔记012]一定简易的UI配置类

    使用cocostudio能够装载编辑好的UI,可是过于复杂.特别是在加截UI后,发现触屏事件有些问题. 假设直接使用程序写死载入UI又过于麻烦.花点时间,添加了一个基于ini的UI配置类,眼下仅仅实现 ...

  10. Online Object Tracking: A Benchmark 论文笔记

    Factors that affect the performance of a tracing algorithm 1 Illumination variation 2 Occlusion 3 Ba ...