mysql中如何使用断言(MySQL中的反斜杠)
mysql中如何使用断言(MySQL中的反斜杠)
2024-11-24 10:30:03  作者:赚很多钱  网址:https://m.xinb2b.cn/sport/hpc160644.html

在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-11-25为什么说走打野位的嫦娥大家好,我是剑风相信大家现在玩中路都能够感受到,走中路很容易被蹭线,导致自己经济总是四号位,如果你玩的是法刺英雄,这点经济根本不够你秒人凯瑞,非常的难受而有一位法师,就为了解决中路吃不到经济的问题,另。
  • 王薇薇vera wang婚纱 华裔婚纱女王王薇薇筷子腿再吸睛
  • 2024-11-25王薇薇vera wang婚纱 华裔婚纱女王王薇薇筷子腿再吸睛全球最著名的婚纱设计师王薇薇(VeraWang)73岁了!日前,VeraWang古稀之年的生日趴照片流出,看到的人无不惊叹于她的身材和状态,果然是“永远的少女”!今年VeraWang的生日趴体还是在她。
  • 米芾罕见的大字字帖(米芾多景楼诗帖)
  • 2024-11-25米芾多景楼诗帖苏轼曾经这样评价这幅作品“风樯阵马,沉着痛快”,而同为“宋四家”之一的黄庭坚也是盛赞不已,这样说道“如快剑斫阵,强弩射千里”,可见,这幅作品的特点是十分突出的,而苏轼、黄庭坚所盛赞的这位大家,就是我们。
  • 80年代儿时的纸灯笼(8090后是否怀念起小时候的纸灯笼)
  • 2024-11-258090后是否怀念起小时候的纸灯笼大河报•豫视频记者宁田甜元宵节就要到了街头市场上,各式灯笼琳琅满目,让人应接不暇那么,传统手工制作的纸灯笼您见过吗?80后90后小时候玩的纸灯笼,又是啥样的?郑州小商品批发市场里,是否还能找到传统样式。
  • 引起脂肪肝的原因和机制(引起脂肪肝的因素有哪些)
  • 2024-11-25引起脂肪肝的因素有哪些脂肪肝是多种原因引起的一种肝脏与脂肪代谢有密切关系的临床现象,主要是肝脏脂肪变性,根据资料统计,近年来发生率有日渐增高的趋势,成人患病率在5%~9%,已引起医学界与人们的广泛关注,故对脂肪肝的诊断与治。
  • 丝袜60d和80d有什么区别(丝袜60d和80d分别是什么意思)
  • 2024-11-25丝袜60d和80d分别是什么意思丝袜60D、80D分别表示丝袜的厚度为60丹尼尔和80丹尼尔D为“Denier”(中文译为“丹尼尔”),简称D或丹,是指袜子纤维的纤度单位也引申定义连裤袜的现形度即不透明度每9000米纤维重多少克就称。
  • 小学生字词记忆法(快速记忆形近字)
  • 2024-11-25快速记忆形近字在学习生字词的过程中,由于孩子们对事物的整体认识不够,加上孩子本身积累的词汇量较少,所以经常会遇到很多问题,一些生字词常常容易记混淆,一些形近字难以辨认这里小编将低年级常用且容易出错的形近字做了一个总。
  • 哈士奇长多大就不长了(哈士奇的7大优点)
  • 2024-11-25哈士奇的7大优点很多人一听说“哈士奇”这三个字就害怕,立马把它和“拆家”二字相联系,直呼不敢养它但其实,哈士奇还是有很多优点的,养过它的人都说不想换狗,如果你有耐心看完它这7个优点,相信你也会喜欢上它!① 阳光的外表。
  • 弟子规如何在日常生活中践行(我们一起学习弟子规)
  • 2024-11-25我们一起学习弟子规最近一段时间以来,有不少朋友关注了我的文章,还有一些朋友经常把我说的感受发给他们的孩子看有一位大姐告诉我,她的儿子看了之后深受感动,并且和她说对不起,做儿子的做得不够好,不够孝顺听了这些反馈的话,我很。
  • 梦见黄豆(梦见黄豆的寓意)
  • 2024-11-25梦见黄豆的寓意女人梦见黄豆,预示夫妻感情会更加甜蜜男性梦见黄豆,表示事业上将会迎来高峰商人梦见黄豆,则表示在商场上将会占有一席之地学生梦见黄豆,则会被向往已久的大学所录取病人梦见黄豆,暗示病情会很快好转。
  • 梦见包扎伤口什么意思(梦见包扎伤口好不好)
  • 2024-11-25梦见包扎伤口好不好梦到包扎伤口,妒忌充溢你的心田,敌手的成功会明显地刺激到你,由于那正是你期望获得的东西梦到自己为自己包扎伤口,象征你在害怕一些事情的产生,感觉自己很孤独,很没安全感商人梦到包扎伤口,象征经营迟缓但有发。
  • 开门见厨房什么意思(农村俗语富看厨房)
  • 2024-11-25农村俗语富看厨房家是一个人一辈子的牵绊,因此人们对家里的布置都是很用心的,尤其是厅堂厅堂就是一家人的面子,是招待客人的地方,也是别人对自己家留的第一印象,所以,一般家庭都会把厅堂收拾的干干净净,物件摆放得整整齐齐,如。