SQL通配符

SQL通配符通常我们只是用%作为通配符,用来表示任意个字符。但sql中的通配符还有下划线_,用来标识任意一个字符实例SELECT*FROMWebsitesWHEREnameLIKE&#

大家好,又见面了,我是你们的朋友全栈君。

通常我们只是用 %  作为通配符,用来表示任意个字符。

但sql中的通配符还有 下划线 _ ,用来标识任意一个字符

实例

SELECT * FROM Websites

WHERE name LIKE ‘_oogle’;

执行输出结果:

<span role="heading" aria-level="2">SQL通配符
 
 
问题再延伸,如果我们数据中有包含下划线的字符,那么该怎么处理呢?
 
--需求,找到name中包含下划线的内容,即 把前两条筛出来
with x as
(select '_haha' as name from dual  union all
select '\_2haha'  as name from dual  union all
select '2haha' as name from dual
)
select * from x where name like '%_%';

<span role="heading" aria-level="2">SQL通配符

 

 不对,这里的下划线别理解成了通配符

 

-- 那么使用右斜杠+下划线的模式来转译他,可以么?
with x as
(select '_haha' as name from dual  union all
select '\_2haha'  as name from dual  union all
select '2haha' as name from dual
)
select * from x where name like '%\_%';

 

<span role="heading" aria-level="2">SQL通配符

 

 

 依然不对,这里斜杠并没有起到转译的作用。

查了下,自己以前不认识这个关键字。ESCAPE

 

-- 使用ESCAPE 关键字来表示【这个字符后边的东西,该被识别成普通字符。】?
with x as
(select '_haha' as name from dual  union all
select '\_2haha'  as name from dual  union all
select '2haha' as name from dual
)
select * from x where name like '%\_%' ESCAPE '\';

 

<span role="heading" aria-level="2">SQL通配符

 

 结果对了。那么换个别的字符呢?

 

with x as
(select '_haha' as name from dual  union all
select '\_2haha'  as name from dual  union all
select '2haha' as name from dual
)
select * from x where name like '%?_%' ESCAPE '?';
---

with x as
(select '_haha' as name from dual  union all
select '\_2haha'  as name from dual  union all
select '2haha' as name from dual
)
select * from x where name like '%!_%' ESCAPE '!';

结果都是

<span role="heading" aria-level="2">SQL通配符

妥了。

 
 
 
 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155710.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 设备树 之pinctrl[通俗易懂]

    设备树 之pinctrl[通俗易懂]三个重要概念bank:gpa0,gpa1,gpa31等group:以功能划分,比如uart的tx和rxstate:设备的某种状态,比如”default”,”idle”,”sleep”,也可以是其他自定义的状态,比如串口的“flow_ctrl”状态例如:bank:&pinctrl_0{/**pinb…

    2022年6月18日
    173
  • JAVA实现文件预览功能

    JAVA实现文件预览功能(PS前阵子发现图片没了,CSDN也没修复好,只好重新上传)近期做的项目要求实现文件在线预览功能,可支持多种文件类型,TXT,DOC,PDF,XLS,最好支持压缩包的预览功能.没办法,只能网上找啊.看了个遍,都是些不靠谱的,转来转去的一个能用的都没有,付费的产品有什么永中啊,OFFICE365啊,这些大概一搜都能搜到,价格也不是很贵但俗话说的好,能不用钱解决问题,就尽…

    2022年5月15日
    30
  • 2019最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)

    2019最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)近期总结一一些面试题都是企业的面试题笔记题感觉薪资10k下的都会出笔试题特别高的薪资都是直接技术面试或者是现场编程总结很多人的面试题,后期会对于单个知识点再说笔记详细讲解。部分都是百度的答案,不是特全面的,可以自己找下同时分享一个自己录制的CSS3动画特效经典案例【推荐教程】–后期会更新vue框架微信小程序等内容。https://ke.qq.com/cou…

    2022年5月31日
    38
  • Java数组(Array)

    Java数组(Array)数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。数组相关的概念:数组名元素角标、下标、索引数组的长度:元素的个数数组的特点:数组是按序排列的数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型创建数组对象会在内存中开辟一整块连续的空间数组的长度一旦确定,就不能修改。数组…

    2022年7月8日
    24
  • bloom过滤器原理_gabor filter

    bloom过滤器原理_gabor filterBloomFilter概念和原理焦萌2007年1月27日 BloomFilter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。BloomFilter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(falsepositive)。因此,BloomFilter不适

    2025年8月9日
    3
  • CSGO开箱网站大全_csgo哪个开箱网站能直接取

    CSGO开箱网站大全_csgo哪个开箱网站能直接取csgo开箱网站有哪些?csgo开箱网站大全##以下国内知名CSGO开箱网站官网直达链接优惠码/推广码网站状态incsgocsgogo直接取回skinsdogcsgogo直接取回88skinscsgo直接取回skskinscsgogo直接取回npskinscsgogo直接取回fateskinscsgo直接取回yskins暂无可取回coolkaixiangcsgo直接取回piggycasecsgogo

    2022年10月6日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号