如何從 MySQL 資料庫列中匹配包含反斜槓的值,例如 ‘a\\b’?


藉助RLIKE運算子,我們可以執行這種匹配。唯一的概念是在MySQL查詢中使用多個反斜槓。下面的例子會更清楚地說明這一點:

我們有如下表,其中包含諸如 ‘a\b’ 和 ‘a\\b’ 的值。

mysql> select * from backslashes;
+------+-------+
| Id   | Value |
+------+-------+
|    1 | 200   |
|    2 | 300   |
|    4 | a\b  |
|    3 | a\b   |
+------+-------+
4 rows in set (0.10 sec)

現在假設我們想匹配值 ‘a\\b’,我們需要寫八個反斜槓。這是因為第二個反斜槓沒有被第一個反斜槓轉義,所以要比較兩個字面量,我們需要將反斜槓加倍,但是當我們從MySQL字串中查詢表中這樣的字串時,這種加倍會發生兩次——一次在客戶端,一次在資料庫中。因此,我們需要使用四倍的反斜槓,如下面的查詢所示:

mysql> Select * from backslashes where value RLIKE 'a\\\\b';
+------+-------+
| Id   | Value |
+------+-------+
|    4 | a\b  |
+------+-------+
1 row in set (0.00 sec)

mysql> Select * from backslashes where value RLIKE 'a\\b';
+------+-------+
| Id   | Value |
+------+-------+
|    3 | a\b   |
+------+-------+
1 row in set (0.01 sec)

更新於:2020年6月22日

728 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.