mysql中如何使用断言(MySQL中的反斜杠)
mysql中如何使用断言(MySQL中的反斜杠)
2024-07-01 04:46:47  作者:赚很多钱  网址:https://m.xinb2b.cn/sport/hpc160644.html

在MySQL中有很多特殊符号都是相当恶心的,比如字符串中有单引号(')、双引号(")、反斜杠(\)等等,同学们可以先脑补一下可能会出现啥问题?,下面我们就来聊聊关于mysql中如何使用断言?接下来我们就一起去了解一下吧!

mysql中如何使用断言(MySQL中的反斜杠)

mysql中如何使用断言

在MySQL中有很多特殊符号都是相当恶心的,比如字符串中有单引号(')、双引号(")、反斜杠(\)等等,同学们可以先脑补一下可能会出现啥问题?

在我们平时操作SQL中,一不注意这些符号就会给你背上一口锅。

你还别不信,听叔一句劝,这里的水很深,有些东西,你把握不住…《潘嘎之交》好了,今天咱们就一起针对最膈应人的反斜杠(\),来看看都有哪些坑。

一、INSERT语句中有反斜杠(\)1、实际测试

咱们用下面这些SQL来测试一下反斜杠(\)在INSERT语句中会是啥样?

INSERTINTO`demo0526`(`id`,`text`)VALUES(null,'D:\陈哈哈\加班');INSERTINTO`demo0526`(`id`,`text`)VALUES(null,'D:\\陈哈哈\\加班');INSERTINTO`demo0526`(`id`,`text`)VALUES(null,'D:\\\陈哈哈\\\加班');INSERTINTO`demo0526`(`id`,`text`)VALUES(null,'D:\\\\陈哈哈\\\\加班');INSERTINTO`demo0526`(`id`,`text`)VALUES(null,'D:\\\\\陈哈哈\\\\\加班');

插入后的结果:

mysql>select*fromdemo0526; ---- ----------------------- |id|text| ---- ----------------------- |1|D:陈哈哈加班||2|D:\陈哈哈\加班||3|D:\陈哈哈\加班||4|D:\\陈哈哈\\加班||5|D:\\陈哈哈\\加班| ---- ----------------------- 5rowsinset(0.00sec)

我们发现结果如下:

当字符串中有1个反斜杠,插入后算0个。

当字符串中有2个反斜杠,插入后算1个。

当字符串中有3个反斜杠,插入后算1个。

当字符串中有4个反斜杠,插入后算2个。

当字符串中有5个反斜杠,插入后算2个。

2、是啥原理?

后来发现,原因其实很简单,在MySQL中,反斜杠在字符串中是属于转义字符,经过语法解析器解析时会进行一次转义,所以当我们insert反斜杠(\)字符时,如 insert “\” 在数据库中最终只会存储"",第一个反斜杠(\)被当做转义字符处理。

同理,像这种 D:\\陈哈哈\\加班 字符串,语法解析器解析到第三个反斜杠(\)时,又会把它当做下一个转义字符进行处理,因此D:\\陈哈哈\\加班入库后变成了D:\陈哈哈\加班。

所以我们在代码中处理插入语句碰到反斜杠时,注意\是否已经改成\,否则入库后字符串会不一致。

二、SELECt查询反斜杠(\)1、实际测试

我们还是沿用上面的表数据,直接用like模糊匹配来测试一下。

mysql>select*fromdemo0526; ---- ----------------------- |id|text| ---- ----------------------- |1|D:陈哈哈加班||2|D:\陈哈哈\加班||3|D:\陈哈哈\加班||4|D:\\陈哈哈\\加班||5|D:\\陈哈哈\\加班| ---- -----------------------

我们先用单个反斜杠和两个反斜杠看看能查到啥玩意儿

mysql>SELECt*fromdemo0526wheretextlike'%\%';Emptyset(0.00sec)mysql>SELECt*fromdemo0526wheretextlike'%\\%';Emptyset(0.00sec)

啊!!我们用like '%%'、like '%\%'查询后发现都查不到数据,纳尼?上面的我白学了吗?

别着急,我会告诉你SELECt语句中四个反斜杠(\\)代表一个么?呀,我赶快换成like '%\\%'试一试。

mysql>SELECT*fromdemo0526wheretextlike'%\\\\%'; ---- ----------------------- |id|text| ---- ----------------------- |2|D:\陈哈哈\加班||3|D:\陈哈哈\加班||4|D:\\陈哈哈\\加班||5|D:\\陈哈哈\\加班| ---- ----------------------- 4rowsinset(0.00sec)

喔?那我如果查询表中带有两个反斜杠(\)的数据,岂不是要like八个。。。。别拦我,我看看tm是谁设计的这规则。

mysql>SELECt*fromdemo0526wheretextlike'%\\\\\\\\%'; ---- ----------------------- |id|text| ---- ----------------------- |4|D:\\陈哈哈\\加班||5|D:\\陈哈哈\\加班| ---- ----------------------- 2rowsinset(0.00sec)

2、又是啥原理?

原来在mysql的like语法中,like后边的字符串除了会在语法解析时转义一次外,还会在正则匹配时进行第二次的转义。因此如果期望最终匹配到"",就要反转义两次,也就是由"\\"到"\"再到""。

如果是普通的精确查询(=),则无需第二次的正则转义,和INSERT语句一样。

mysql>SELECt*fromdemo0526wheretext='\\\\'; ---- ------ |id|text| ---- ------ |7|\\| ---- ------ 1rowinset(0.00sec)

总结

好了,看到这里同学们有什么感受呢?是不是发现MySQL中还是存在很多不方便的语法,进步空间还很大呀~~

在日常工作中,也会经常碰到这种符号引发的问题,尤其是用户在界面填写的数据,建议要做相关限定,明确哪些符号不允许。

作者:陈哈哈

原文链接:https://blog.csdn.net/qq_39390545/article/details/117296607

  • 澳大利亚总人口有多少
  • 2024-07-01澳大利亚总人口有多少2560多万人澳大利亚是一个地广人稀的国家,总人口2560多万人,与我国的甘肃省、吉林省大体相当但是,澳大利亚疆域面积辽阔,领土面积达到了769万平方公里由此可见,澳大利亚属于人口稀少的国家澳大利亚5。
  • 二十四味暖浮生电视剧在什么卫视(二十四味暖浮生开播)
  • 2024-07-01二十四味暖浮生开播由导演金雄豪执导,董思怡、李歌洋领衔主演,胡丹丹、徐炳超、林柒予、刘耀元、黄吉等主演的古装轻喜剧《二十四味暖浮生》在爱奇艺开播,在该剧中,演员黄吉角色反差大,无疑也让大家对黄吉在剧中接下来的表现充满了。
  • 雅思听力阅读词汇(雅思听力词汇精选大盘点)
  • 2024-07-01雅思听力词汇精选大盘点环球小编和老师们聊天的时候,发现无论是线上线下,烤鸭们最关心的一个话题估计就是背单词了,因为如果说雅思考试是盖一栋摩天大楼,而单词量就是最基本的地基但与其盲目乱背,不如有针对性的进行背诵,而在雅思听力。
  • 民国桂林最大土匪(民国重庆桃色命案)
  • 2024-07-01民国重庆桃色命案1949年10月20日晚,在重庆临江门发生了一起毒杀命案死者为25岁的江北人李荣华,凶手则是他两年前在国民党军队中的同事洪子明,那么这两名曾经的国民党军官到底有什么深仇大恨,非得向对方痛下杀手呢?这事。
  • qq怎么看号密码查询
  • 2024-07-01qq怎么看号密码查询查看qq密码方法如下:操作设备:小米11青春版设备系统:MIUI12.5.5操作软件:QQ8.8.501、首先在QQ个人中心点击左下角的【设置】按钮2、在设置中心点击【账号管理】选项3、在账号管理中点。
  • 西游记六小龄童哥哥演了几集
  • 2024-07-01西游记六小龄童哥哥演了几集在电视剧西游记里面,六小龄童的哥哥一集也没有演,都是六小龄童扮演的孙悟空,六小龄童的哥哥,在电影三打白骨精里面,扮演猪八戒。
  • lol塞恩一级断兵线(星界驱驰和先攻)
  • 2024-07-01星界驱驰和先攻让游戏成为一位调味料,给乏味的生活带来一点轻松和娱乐,大家好,欢迎收看游戏君为大家带来的最新的游戏资讯!2022赛季已经更新了有一段时间了,相信在这一段时间里,大家也都已经把这些新的改动给研究透彻了今。
  • 82年生的金智英讲述了什么(结婚十年和82年生的金智英)
  • 2024-07-01结婚十年和82年生的金智英我是子夜,欢迎关注@子夜人物,愿做一缕微光,点亮你的人生文/子夜2017年,韩国小说《82年生的金智英》出本,很快在韩国销售破百万册,日本上市3个月突破13万册,成为亚洲近10年来罕见的现象级畅销书,。
  • 莲心什么时候背叛皇后的(莲心新婚夜发生了什么)
  • 2024-07-01莲心新婚夜发生了什么排版丨九月清宫编辑丨墨枫如懿传原著也太暗黑啦!这真的是我能免费看的内容吗?我单知道卫嬿婉为了上位手段凶残,无所不用其极但看了原著以后才发现,剧版还是拍的太保守啦!就拿意欢怀胎被动手脚来说吧剧中只说了意。
  • 窗花教程大全最简单(分享两种既简单又漂亮的窗花教程)
  • 2024-07-01分享两种既简单又漂亮的窗花教程窗花是生活中最常见的剪纸,它的图案是多种多样的,因为它的造型没有固定的格式,所以窗花也是最容易自己创作的一种剪纸今天和大家分享的是两个窗花的剪法,制作起来很是容易剪纸方法步骤:先把正方形纸对折成三角,。
  • 剥离试验机厂家:剥离试验机有哪些功能特点
  • 2024-07-01剥离试验机厂家:剥离试验机有哪些功能特点作为轻型的一种试验仪器,剥离试验机拥有测试精准、操作简单、扩充性强等优点,能对胶带、背胶、胶板、胶布、不干胶、双面胶、胶纸、魔术贴、胶黏剂、塑料薄膜、线材、电子零件等试样进行拉力、压力、剥离、离型力、。