亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:108日期:2023-02-18 16:43:13
目錄
  • 一、INSERT語句中有反斜杠(\)
    • 1. 實際測試
    • 2. 原理
  • 二、SELECT查詢反斜杠(\)
    • 1. 實際測試
    • 2. 原理

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

1. 實際測試

咱們用下面這些SQL來測試一下反斜杠(\)在INSERT語句中會是啥樣?

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é)果如下:

當字符串中有1個反斜杠,插入后算0個。
當字符串中有2個反斜杠,插入后算1個。
當字符串中有3個反斜杠,插入后算1個。
當字符串中有4個反斜杠,插入后算2個。
當字符串中有5個反斜杠,插入后算2個。

2. 原理

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

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

二、SELECT查詢反斜杠(\)

1. 實際測試

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

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

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

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 '%\%'查詢后發(fā)現(xiàn)都查不到數(shù)據(jù),納尼?上面的我白學了嗎?

別著急,我會告訴你SELECT語句中四個反斜杠(\\)代表一個么?呀,我趕快換成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)

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

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

2. 原理

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

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

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

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

標簽: MySQL
相關(guān)文章:
主站蜘蛛池模板: 妇女自拍偷自拍亚洲精品 | 找国产毛片 | 一级欧美一级日韩毛片99 | 一区二区三区四区在线播放 | 久久在视频 | 免费一级欧美片片线观看 | 成人男女网18免费软件大全 | 欧美成人四级剧情在线播放 | 久久久国产视频 | 国产精品永久免费 | 欧美日韩亚洲国内综合网香蕉 | 亚洲97i蜜桃网 | 成人高清在线观看 | 欧美三级伦理片 | 99视频在线永久免费观看 | 爽妇综合网| 亚洲成a人v天堂网 | 嫩草成人国产精品 | 97日韩| 国产片一级aaa毛片视频 | 欧美一级久久 | 欧美三级成版人版在线观看 | 日韩精品a在线视频 | 久久人体做爰大胆图片 | 久久久久久久久久免免费精品 | 国产最新网站 | 欧美高清一区二区三区欧美 | 日韩美女一级毛片 | 久久一级| 国产91视频免费 | 国产成人麻豆tv在线观看 | 国产精品久久久久久久小唯西川 | 国产精品亚洲综合 | 国产真实强j视频在线观看 国产真实露脸4p视频 | 亚洲精品国产第一区二区尤物 | 亚洲精品第一页中文字幕 | 一级鲁丝片 | 性激烈的欧美三级高清视频 | 国产精品亚洲精品爽爽 | 中国明星一级毛片免费 | 日本成日本片人免费 |