原文:mysql模糊查询like/REGEXP

增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课。

like模式

like意思是长得像,有两个模式:_和%

_表示单个字符,通常用来查询定长的数据,如查出所有姓王的三个字的人名,假设姓名列名为name,注意“王”后面有两个_

select name from 表名 where name like '王__';

%表示0个或多个任意字符,如查出所有姓王的人名

select name from 表名 where name like '王%';

查出所有包含“华”字的人名

select name from 表名 where name like '%华%';

正则模式

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

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

+,重复1次或多次

'str+'可以匹配str/strr/strrr/strrrr……

相比javascript里面的正则而言,这里的正则是简化版的,没有惰性匹配/贪婪匹配,[]内不支持\w\s\d这种语法,也不支持中文,相对简单。

需要注意的一点是:这两种模式不要混着用,like模式是不支持正则表达式的,REGEXP模式也不认识_和%

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

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

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

  4. 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 ...

  5. MySQL模糊查询

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

  6. MYSQL 模糊查询

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

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

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

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

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

  9. MySQL模糊查询中通配符的转义

    sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符.如果我们想要模糊查询带有通配符的字符串,如“60%”,“us ...

随机推荐

  1. POJ 3169 Layout (差分约束)

    题意:给定一些母牛,要求一个排列,有的母牛距离不能超过w,有的距离不能小于w,问你第一个和第n个最远距离是多少. 析:以前只是听说过个算法,从来没用过,差分约束. 对于第 i 个母牛和第 i+1 个, ...

  2. iOS多线程总结

    1.不要同时开太多的线程(1~3条线程即可,不要超过5条) 2.线程概念 1> 主线程 : UI线程,显示.刷新UI界面,处理UI控件的事件 2> 子线程 : 后台线程,异步线程 3.不要 ...

  3. SSH下载的方法2

    ------------------------------下作下载方法二---------------------------------------------------String msg=n ...

  4. miniui datagrid 保存到服务端,使用.NET 自带 JSON 转换时发现日期格式不兼容。

    使用 miniui datagrid 修改表格后,保存到服务端,然后使用 .NET 自带 JSON 转换,会抛出DateTime 内容“2015-12-27T11:02:28”未按 JSON 的要求以 ...

  5. C#之 HashSet(临时笔记,未参考资料,请慎重)

    HashSet是一个集合,类似于DataSet,但是其主要用途是用来存放同一种类型的元素(string.row.table等),如果添加的元素跟定义时初始的类型不一致,就会直接编译失败. 例如: Ha ...

  6. 小知识~让你的DLL类库带上注释

    在我们进行开发公用组件时,一般会把DLL给团队的开发人员直接使用,而不会把项目给他们,因为那样对为框架级代码是不安全的,这时引用框架类库有两种方式,一种是直接复制DLL,第一种是使用包管理工具Nuge ...

  7. Libvirt 虚拟化库剖析

    讲到向外扩展计算(比如云计算),libvirt 可能是您从未听说过的最重要的库之一.libvirt 提供一种虚拟机监控程序不可知的 API 来安全管理运行于主机上的来宾操作系统.libvirt 本身不 ...

  8. chrome浏览器下用jQuery的load函数来跨域加载页面,响应状态status为(canceled)是什么情况? JSON和JSONP,也许你会豁然开朗,含jQuery用例

    http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html 问题来源:http://q.cnblogs.com ...

  9. php 内置http服务器

    PHP从5.4.0起,内置了一个http服务器,开发人员可以借助这个内置服务器来做一些本地测试. 启动服务器: 打开终端,进入php安装目录,然后执行 php -S localhost: 这样就可以开 ...

  10. iOS 在任意界面 Dismiss Keyboard

    最近由于项目需要,有些时候我们需要在任意时刻dismiss掉键盘. 很自然的我们会想到键盘通知 UIKeyboardDidShowNotification和UIKeyboardDidHideNotif ...