%代表任意多个字符  _代表一个字符 在 MySQL中,SQL的模式缺省是忽略大小写的
正则模式使用REGEXP和NOT REGEXP操作符。
“.”匹配任何单个的字符。一个字符类
“[...]”匹配在方括号内的任意单个字符
“ * ”匹配零个或多个在它前面的东西
正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。
在模式开始处使用“^”或在模式的结尾用“$”。 为了找出以“三”开头的名字,使用“^”匹配名字的开始。 FROM [user] WHERE u_name REGEXP ‘^三’; 将会把u_name为 “三脚猫”等等以“三”开头的记录全找出来。 为了找出以“三”结尾的名字,使用“$”匹配名字的结尾。 FROM [user] WHERE u_name REGEXP ‘三$’; 将会把u_name为“张三”,“张猫三”等等以“三”结尾的记录全找出来。 你也可以使用“{n}”“重复n次”操作符重写先前的查询: FROM [user] WHERE u_name REGEXP ‘b{2}$’; 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 '/'; 二、正则模式 由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。 扩展正则表达式的一些字符是: “.”匹配任何单个的字符。(单字节字符) 一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。 “ * ”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。 正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。 如果它出现在被测试值的任何地方,模式就匹配(只要他们匹配整个值,SQL模式匹配)。 为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。 为了说明扩展正则表达式如何工作,上面所示的LIKE查询在下面使用REGEXP重写: 为了找出以“三”开头的名字,使用“^”匹配名字的开始。 FROM [user] WHERE u_name REGEXP ‘^三’; 将会把u_name为 “三脚猫”等等以“三”开头的记录全找出来。 为了找出以“三”结尾的名字,使用“$”匹配名字的结尾。 FROM [user] WHERE u_name REGEXP ‘三$’; 将会把u_name为“张三”,“张猫三”等等以“三”结尾的记录全找出来。 你也可以使用“{n}”“重复n次”操作符重写先前的查询: FROM [user] WHERE u_name REGEXP ‘b{2}$’; 注意:如果是中文字符,可能在使用时需要注意一下。

mysql模糊查询实践总结的更多相关文章

  1. MySQL模糊查询:LIKE模式和REGEXP模式

    MySQL模糊查询提供了两种模式:LIKE模式和REGEXP模式. LIKE模式 LIKE模式是使用的LIKE 或 NOT LIKE 比较运算符进行模糊查询. SELECT 字段 FROM 表 WHE ...

  2. mysql模糊查询like/REGEXP

    原文:mysql模糊查询like/REGEXP 增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课. like模式 like意思是长得像, ...

  3. mysql模糊查询 like/REGEXP

    原文:mysql模糊查询like/REGEXP 增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课. like模式 like意思是长得像, ...

  4. Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm

    这篇文章主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果的解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下   项目开发中,在做Mybatis动态查询时,遇到了 ...

  5. mysql: 模糊查询 feild like keyword or feild like keyword , concat(feild1,feild2,feild3) like keyword

    mysql: 模糊查询 feild like '%keyword%' or feild like'% keyword%' , 或者 concat(feild1,feild2,feild3) like ...

  6. MySQL模糊查询

    第一种最土的方法:使用like语句第二种用全文索引 有两种方法,第一种最土的方法:使用like语句第二种听涛哥说用全文索引,就在网上搜一下: 如何在MySQL中获得更好的全文搜索结果 mysql针对这 ...

  7. MYSQL 模糊查询

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

  8. 关于Mysql模糊查询的优化-全文检索和Like的使用

    表A:CREATE TABLE `tableA` (`id` int(11) NOT NULL auto_increment,`content` varchar(256) default NULL,P ...

  9. mysql模糊查询1,11,111用逗号(其他符号)拼接的相似字符串

    mysql进行模糊查询时,基本都是LIKE "%sss%",有时候这种查询时准确的,但是有种情况这种查询会出现很大问题. 看一下下面这张表 如果想查询字段test包含1的数据,一般 ...

随机推荐

  1. iOS音频合并

    iOS音频合并 最近遇到一个需求,客户录音试听一下可以,就继续向下录制,当客户录制完成后,需要把前面录制的试听音频和后面的音频进行合并.最初想到的方法,使用NSData对两个音频文件进行合并,但是合并 ...

  2. Redis 的 fields 遇到的问题

    问题描述:本地和测试环境同使用一台redis服务器,本地环境和测试环境使用 key,fileds,value 中的fileds 来区分,例如 key fields value 004920c6eba1 ...

  3. ruby之各种概念

    一.引言 刚开始接触ruby,遇到问题于是上网查资料,但是有时候却又看不懂,这很大一部分原因是我不知道一些关于ruby的概念名词是什么意思,所以看了别人的回答也理解不了. 二.各种名词 ruby:这个 ...

  4. vs2010 MSDN文档安装方法

    vs2010的MSDN是不能独立安装,必须安装VS2010后才能安装. 安装方法: 1.vs2010的ISO光盘文件中,里面会有个ProductDocumentation文件夹,其实这个就是安装MSD ...

  5. 数据库设计(五)第一范式(1NF)?

    In our last tutorial we learned and understood how data redundancy or repetition can lead to several ...

  6. 下一个时代,对话即平台 —— 开始使用Bot Framework和Cognitive Service来打造你的智能对话服务

    在16年3月30号微软的全球开发者大会Build上发布了Bot Framework,微软认为下一个big thing是Conversation as a Platform,简称CaaP,中文应该叫做& ...

  7. [Win10应用开发] 使用 Windows 推送服务

    前言 Windows 推送服务(WNS)也是 Win10 通知机制中的一种,今天与大家一起学习一下有关WNS的相关知识.使用 Windows 推送服务的前提是你需要有一个微软开发者账号,这样才能得到一 ...

  8. 11 jsp脚本调用java代码

    大多数情况下, jsp 文档的大部分由静态文本(html)构成, 为处理该页面而创建的 servlet 只是将它们原封不动的传递给客户端, 原封不动的传送给客户端有两个小例外: 1. 如果想传送 &l ...

  9. 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 (转)

    x-ua-compatible 用来指定IE浏览器解析编译页面的model x-ua-compatible 头标签大小写不敏感,必须用在 head 中,必须在除 title 外的其他 meta 之前使 ...

  10. linux系统web项目运行环境搭建

    允许本地访问端口:iptables -P OUTPUT ACCEPT MySQL数据库安装1.yum install mysql 2.yum install mysql-server 3.删除MySQ ...