mysql通配符的具体使用
作者:1.01 发布时间:2024-01-22 18:43:16
概念:
通配符(wildcard)
即:用来匹配值的一部分的特殊字符。
搜索模式(search pattern)
即:由字面值、通配符或两者组合构成的搜索条件。
1、 百分号(%)通配符
最常使用的通配符是百分号(%)。在搜索串中,%表示任何字符出现任意次数。匹配时,一般是不区分大小写的,但是根据MySQL的配置方式,搜索可以是区分大小写的,加BINARY关键字。
SELECT id, name FROM test_table WHERE BINARY info LIKE '%ab%ed';
重要的是要注意到,除了一个或多个字符外,%还能匹配0个字符。%代表搜索模式中给定位置的0个、1个或多个字符,例如:
SELECT id, name FROM test_table WHERE info LIKE '%ab%ed';
注意尾空格 尾空格可能会干扰通配符匹配。例如,在保存词anvil 时, 如果它后面有一个或多个空格, 则子句WHERE prod_name LIKE '%anvil’将不会匹配它们,因为在最后的l后有多余的字符。解决这个问题的一个简单的办法是在搜索模式最后附加一个%。一个更好的办法是使用函数(trim())去掉首尾空格,函数Trim()、RTrim()、LTrim();
注意NULL 虽然似乎%通配符可以匹配任何东西,但有一个例外,即NULL。即使是WHERE prod_name LIKE '%'也不能匹配用值NULL作为产品名的行。
2、 下划线(_)通配符
下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符。
与%能匹配0个字符不一样,_总是匹配一个字符,不能多也不能少。
【注】MySQL的通配符很有用。但这种功能是有代价的:通配符搜索的处理一般要比其他搜索所花时间更长。这里给出一些使用通配符要记住的技巧。
不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。
仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据
3、使用通配符时易忽略的一个问题
以上述 a 表为例:
当我们要查询以exp_asd_10_开头的数据时,sql语句应该如何去写?
select * from a where name like 'exp_asd_10_%'
查询结果:
很自信的执行了这条sql语句,你会发现结果并不是自己所预期的那样,执行上面的sql语句会把所有的以exp_asd_10开头的数据都查找到
原因:
在sql中,下划线_也是一个通配符,能匹配任意一个字符,像上面那样写的话。
正确的写法应该是:
select * from a where name like 'exp\_asd\_10\_%'
在_通配符前面加上转义字符\,这样mysql就会把下划线通配符视为普通字符
来源:https://blog.csdn.net/weixin_43743711/article/details/125311045


猜你喜欢
- Jinja是组成Flask的模板引擎。可能你还不太了解它是干嘛的,但你对下面这些百分号和大括号肯定不陌生:{% block body %}
- php实现上传图片保存到数据库的方法。分享给大家供大家参考。具体分析如下:php 上传图片,一般都使用move_uploaded_file方
- 一、随机数种子为什么要提出随机数种子呢?咱们前面提到过了,随机数均是模拟出来的, 想要模拟的比较真实,就需要变换种子函数内的数值,一般以时间
- 前言本文给大家介绍的是利用Python抓取手机归属地信息,文中给出了详细的示例代码,相信对大家的理解和学习很有帮助,以下为Python代码,
- 事件循环(Event Loop),是每个JS开发者都会接触到的概念,但是刚接触时可能会存在各种疑惑。众所周知,JS是单线程的,即同一时间只能
- 背景最近正在学nodejs,想到曾经有台云服务器,但是很久不用了,由于怕麻烦,一股脑的把云主机重装了个Ubuntu系统,于是配置MySQL成
- 一.MYSQL的命令行模式的设置桌面->我的电脑->属性->环境变量->新建->PATH=“;path\mys
- 概述数据分析 (Data Analyze) 可以在工作中的各个方面帮助我们. 本专栏为量化交易专栏下的子专栏, 主要讲解一些数据分析的基础知
- 本文实例讲述了Python Web框架之Django框架cookie和session用法。分享给大家供大家参考,具体如下:part 1 概念
- 有时候需要罗列下U盘等移动设备或一个程序下面的目录结构的需求。基于这样的需求个人整理了一个使用Python的小工具,期望对有这方面需求的朋友
- 话不多说 直接上代码<el-upload :action="actionUrl&q
- 先来看实现效果。1.遇到问题因为随着功能的增多,table操作栏中的功能按钮增多,操作列长度就增长,导致不是很美观。所以产品要求超过三个按钮
- 这里使用TensorFlow实现一个简单的卷积神经网络,使用的是MNIST数据集。网络结构为:数据输入层–卷积层1–池化层1–卷积层2–池化
- 昨日,女票拿了一个Excel文档,里面有上万条数据要进行分析,刚开始一个字段分析,Excel用的不错,还能搞定,到后来两个字段的分析,还有区
- 用Open() 函数打开文件打开文件的常用方法是:open(FH, "< $filename") &nb
- 使用存储过程,在操作数据库时开启事务,避免并发时同时操作造成数据重复CREATE DEFINER=`root`@`localhost` PR
- 使用WSH调用系统的Ping命令,将Ping的结果重定向到一个文本文件中去,再把文本文件显示到网页中具体做法如下:首先, 建一个.BAT文件
- 对json数据进行查询及修改使用 字段->'$.json属性' 进行查询条件使用 json_extract 函数查询,
- 之前,我们在另外一篇文章中使用Prim算法生成了一个完美迷宫,利用的是遍历网格的方法,这一次,我们要教教大家用遍历墙的方法生成,上一篇文章链
- 文中为大家分享了三种JavaScript判断对象是否为数组的方法,1. typeof首先我们会想到的是使用typeof来检测数据类型,但是对