MySQL中的模糊查询和通配符转义
MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或RLIKE/NOT RLIKE,它们是同义词)。
第一种是标准的SQL模式匹配。它有2种通配符:“_”和“%”。“_”匹配任意单个字符,而“%”匹配任意多个字符(包括0个)。举例如下:
SELECT * FROM table_name WHERE column_name LIKE ‘m%’; #查询某字段中以m或M开头的所有记录
SELECT * FROM table_name WHERE column_name LIKE ‘%m%’; #查询某字段中包含m或M的所有记录
SELECT * FROM table_name WHERE column_name LIKE ‘%m’; #查询某字段中以m或M结尾的所有记录
SELECT * FROM table_name WHERE column_name LIKE ‘_m_’; #查询某字段中3个字符且m或M在中间的所有记录
如果我们想查询包含通配符的字符串该怎么办呢?比如,50%或_get。答案就是:转义。可以用\来直接转义,或用ESCAPE定义转义字符来进行转义,都只是转义跟在后面的一个字符,例如:
SELECT * FROM table_name WHERE column_name LIKE ‘%50\%%’; /*第2个%被转义,查询某字段包含50%的所有记录*/
SELECT * FROM table_name WHERE column_name LIKE ‘%50/%%’ ESCAPE ‘/’; #第2个%被转义
SELECT * FROM table_name WHERE column_name LIKE ‘%\_get%’ ESCAPE ‘/’; /*“_”被转义,查询某字段包含_get的所有记录*/
第二种是使用扩展正则表达式的模式匹配。先来看下扩展正则表达式一些字符的含义:
“.”:匹配任意单个字符
“?”:匹配前面的子表达式0次或1次。
“+”:匹配前面的子表达式1次或多次。
“*”:匹配前面的子表达式0次或多次。x*,表示0个或多个x字符;[0-9]*,匹配任何数量的数字。
“^”:表示匹配开始位置。
“$”:表示匹配结束位置。
“[]”:表示一个集合。[hi],表示匹配h或i;[a-d],表示匹配a、b、c、d中任一个。
“{}”:表示重复的次数。8{5},表示匹配5个8,即88888;[0-9]{5,11},表示匹配5到11个数字。
再来看个例子:
SELECT * FROM table_name WHERE column_name REGEXP ‘^50%{1,3}’; /*查询某字段中以50%、50%%或50%%%开头的所有记录*/
MySQL中的模糊查询和通配符转义的更多相关文章
- mysql中的模糊查询
转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...
- MySQL中的模糊查询 like 和 Oracle中的 instr() 函数有同样的查询效果
注:MySQL中的模糊查询 like 和 Oracle中的 instr() 函数有同样的查询效果: 如下所示: MySQL: select * from tableName where name li ...
- elasticsearch 7.x 如何满足mysql中的模糊查询功能(like)
业务场景:筛选项原功能是用mysql左模糊进行过滤查询,现业务要用es,怎么样才能满足原功能,又不损性能. elasticsearch中有关于模糊查询的操作:wildcard 文档:https://b ...
- LIKE模糊查询的通配符
LIKE模糊查询的通配符 通配符 说明 示例 % 包含零个或多个字符的任意字符串. WHERE title LIKE '%computer%' 将查找在书名中任意位置包含单词 "comput ...
- 关于sql、mysql语句的模糊查询分类与详解,包括基本用法和mapper.xml文件里插入写法
欢迎猿类加qq:2318645572,共同学习进步 实际例子: ssm框架:service业务层->dao层->mappers.xml->junit/test测试 1:service ...
- mongo中的模糊查询
以下是一个mongo查询的综合应用,即介绍一个生产中实际应用的模糊查询,当然其实也很简单,主要用到mongo中的模糊查询和$or查询,以及并的关系,下面是一个mongo中的一条记录 { "_ ...
- PHP MYSQL登陆和模糊查询
PHP MYSQL登陆和模糊查询 PHP版本 5.5.12 MYSQL版本 5.6.17 Apache 2.4.9 用的wampserver 一.PHPMYSQL实现登陆: 一共含有两个 ...
- 第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数
第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; ...
- Mybatis中的模糊查询
今天下午做的一个功能,要用到模糊查询,字段是description,刚开始我的写法用的是sql中的模糊查询语句, 但是这个有问题,只有将字段的全部值传入其中,才能查询,所以不是迷糊查询. 后来经过搜索 ...
随机推荐
- 查看当前session权限
oracle 1111.2.0.1.0 环境 查看connect都有什么权限 SQL> select * from dba_sys_privs where GRANTEE='CONNECT'; ...
- wmware虚拟系统光盘的问题
拿到系统盘,需要通过UltralSO工具中:工具-制作光盘映像文件,做成系统iso文件,而不是直接拷贝系统盘里的文件压缩成iso格式. 主要原因:主要是系统盘有一个引导区,win系统复制光盘时,是不能 ...
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
登录服务器,使用root用户连接mysql时出现错误提示: $ bin/mysql -uroot -p Enter password: ERROR (HY000): Can't connect to ...
- CSS HTML 常用属性备忘录
学习软件设计有一年多了,明年五月就要毕业了.回头看看发现自己其实挺差劲的. 最近开通了博客所以就整理了一下笔记,在这里发布一下自己以前学习css时总是记不住去翻书又很常用的属性,都是一些很基础的. 大 ...
- 【ACM-ICPC 2018 沈阳赛区网络预赛】不太敢自称官方的出题人题解
A. Gudako and Ritsuka 链接 by Yuki & Asm.Def 期望难度:Hard- 考虑从后往前进行博弈动态规划,在这一过程中维护所有的先手必胜区间.区间不妨采用左开右 ...
- 4、Redis中对List类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...
- Codeforces Round #298 (Div. 2) A. Exam 构造
A. Exam Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/534/problem/A Des ...
- python—第三库的安装方法
Windows系统下安装第三方Python库的三种方法: 1.使用easy_install命令安装 一般在安装完Python后再C:\Python27\Scripts 目录下有 easy_instal ...
- Tasker to stop Poweramp control for the headset while there is an incoming SMS - frozen
If you usually like to use Poweramp or any other media player to enjoy the music with headset plugge ...
- 【Go入门教程5】流程(if、goto、for、switch)和函数(多个返回值、变参、传值与传指针、defer、函数作为值/类型、Panic和Recover、main函数和init函数、import)
这小节我们要介绍Go里面的流程控制以及函数操作. 流程控制 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑.Go中流程控制分三大类:条件判断,循环控制和 ...