国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

MySQL里的反斜杠(\)的使用

瀏覽:139日期:2023-02-18 16:43:13
目錄
  • 一、INSERT語(yǔ)句中有反斜杠(\)
    • 1. 實(shí)際測(cè)試
    • 2. 原理
  • 二、SELECT查詢(xún)反斜杠(\)
    • 1. 實(shí)際測(cè)試
    • 2. 原理

一、INSERT語(yǔ)句中有反斜杠(\)

1. 實(shí)際測(cè)試

咱們用下面這些SQL來(lái)測(cè)試一下反斜杠(\)在INSERT語(yǔ)句中會(huì)是啥樣?

INSERT INTO `demo0526` (`id`, `text`) VALUES (null, "D:\陳哈哈\加班");
INSERT INTO `demo0526` (`id`, `text`) VALUES (null, "D:\\陳哈哈\\加班");
INSERT INTO `demo0526` (`id`, `text`) VALUES (null, "D:\\\陳哈哈\\\加班");
INSERT INTO `demo0526` (`id`, `text`) VALUES (null, "D:\\\\陳哈哈\\\\加班");
INSERT INTO `demo0526` (`id`, `text`) VALUES (null, "D:\\\\\陳哈哈\\\\\加班");

插入后的結(jié)果:

mysql> select * from demo0526;
+----+-----------------------+
| id | text  |
+----+-----------------------+
|  1 | D:陳哈哈加班  |
|  2 | D:\陳哈哈\加班|
|  3 | D:\陳哈哈\加班|
|  4 | D:\\陳哈哈\\加班      |
|  5 | D:\\陳哈哈\\加班      |
+----+-----------------------+
5 rows in set (0.00 sec)

我們發(fā)現(xiàn)結(jié)果如下:

當(dāng)字符串中有1個(gè)反斜杠,插入后算0個(gè)。
當(dāng)字符串中有2個(gè)反斜杠,插入后算1個(gè)。
當(dāng)字符串中有3個(gè)反斜杠,插入后算1個(gè)。
當(dāng)字符串中有4個(gè)反斜杠,插入后算2個(gè)。
當(dāng)字符串中有5個(gè)反斜杠,插入后算2個(gè)。

2. 原理

在MySQL中,反斜杠在字符串中是屬于轉(zhuǎn)義字符,經(jīng)過(guò)語(yǔ)法解析器解析時(shí)會(huì)進(jìn)行一次轉(zhuǎn)義,所以當(dāng)我們insert反斜杠(\)字符時(shí),如 insert “\” 在數(shù)據(jù)庫(kù)中最終只會(huì)存儲(chǔ)"",第一個(gè)反斜杠(\)被當(dāng)做轉(zhuǎn)義字符處理。

同理,像這種 D:\\\陳哈哈\\\加班 字符串,語(yǔ)法解析器解析到第三個(gè)反斜杠(\)時(shí),又會(huì)把它當(dāng)做下一個(gè)轉(zhuǎn)義字符進(jìn)行處理,因此D:\\\陳哈哈\\\加班入庫(kù)后變成了D:\陳哈哈\加班。

二、SELECT查詢(xún)反斜杠(\)

1. 實(shí)際測(cè)試

我們還是沿用上面的表數(shù)據(jù),直接用like模糊匹配來(lái)測(cè)試一下。

mysql> select * from demo0526;
+----+-----------------------+
| id | text  |
+----+-----------------------+
|  1 | D:陳哈哈加班  |
|  2 | D:\陳哈哈\加班|
|  3 | D:\陳哈哈\加班|
|  4 | D:\\陳哈哈\\加班      |
|  5 | D:\\陳哈哈\\加班      |
+----+-----------------------+
5 rows in set (0.00 sec)

我們先用單個(gè)反斜杠和兩個(gè)反斜杠看看能查到啥玩意兒

mysql> SELECT * from demo0526 where text like "%\%";
Empty set (0.00 sec)

mysql> SELECT * from demo0526 where text like "%\\%";
Empty set (0.00 sec)

啊??!我們用like ‘%%’、like '%\%'查詢(xún)后發(fā)現(xiàn)都查不到數(shù)據(jù),納尼?上面的我白學(xué)了嗎?

別著急,我會(huì)告訴你SELECT語(yǔ)句中四個(gè)反斜杠(\\)代表一個(gè)么?呀,我趕快換成like '%\\%'試一試。

mysql> SELECT * from demo0526 where text like "%\\\\%";
+----+-----------------------+
| id | text  |
+----+-----------------------+
|  2 | D:\陳哈哈\加班|
|  3 | D:\陳哈哈\加班|
|  4 | D:\\陳哈哈\\加班      |
|  5 | D:\\陳哈哈\\加班      |
+----+-----------------------+
4 rows in set (0.00 sec)

喔?那我如果查詢(xún)表中帶有兩個(gè)反斜杠(\)的數(shù)據(jù),豈不是要like八個(gè)。。。。別攔我,我看看tm是誰(shuí)設(shè)計(jì)的這規(guī)則

mysql> SELECT * from demo0526 where text like "%\\\\\\\\%";
+----+-----------------------+
| id | text  |
+----+-----------------------+
|  4 | D:\\陳哈哈\\加班      |
|  5 | D:\\陳哈哈\\加班      |
+----+-----------------------+
2 rows in set (0.00 sec)

2. 原理

在mysql的like語(yǔ)法中,like后邊的字符串除了會(huì)在語(yǔ)法解析時(shí)轉(zhuǎn)義一次外,還會(huì)在正則匹配時(shí)進(jìn)行第二次的轉(zhuǎn)義。因此如果期望最終匹配到"",就要反轉(zhuǎn)義兩次,也就是由"\\\\"到"\\"再到"\"。

如果是普通的精確查詢(xún)(=),則無(wú)需第二次的正則轉(zhuǎn)義,和INSERT語(yǔ)句一樣。

mysql> SELECT * from demo0526 where text = "\\\\";
+----+------+
| id | text |
+----+------+
|  7 | \\   |
+----+------+
1 row in set (0.00 sec)

到此這篇關(guān)于MySQL里的反斜杠(\\)的使用的文章就介紹到這了,更多相關(guān)MySQL 反斜杠內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MySQL
相關(guān)文章:
主站蜘蛛池模板: 国产综合亚洲专区在线 | 亚洲欧美日本韩国综合在线观看 | 亚洲国产毛片aaaaa无费看 | 久草视频精品在线 | 日本黄区 | 日韩视频久久 | 100000免费啪啪18免进 | 视频一区在线观看 | 国产成人久久777777 | 国产农村乱子伦精品视频 | 亚洲 欧美 日韩 丝袜 另类 | 99国产国人青青视频在线观看 | 免费国产综合视频在线看 | 亚洲欧美日韩在线精品一区二区 | 亚洲一区免费视频 | 亚洲精品国产一区二区 | 亚洲精品影院久久久久久 | 大伊香蕉精品视频在线 | 嫩草影院在线观看网站成人 | 欧美精品人爱a欧美精品 | 男女乱配视频免费观看 | 超清首页 国产 亚洲 丝袜 | 久久国产欧美另类久久久 | 亚洲精品高清久久 | 另类视频欧美 | 日本免费的一级绿象 | 亚洲精品手机在线观看 | 免费观看毛片的网站 | 无限观看社区在线视频 | 美女黄色在线网站大全 | 成人久久18免费网站 | 一区二区三区免费在线视频 | 欧美在线一级片 | 免费观看毛片视频 | 永久免费不卡在线观看黄网站 | 亚洲在线免费观看 | 欧美大片欧美毛片大片 | 欧美成人自拍视频 | 视频二区好吊色永久视频 | 黄色日韩网站 | 欧美精品18videos性欧美 |