如何從 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 日

725 次瀏覽

開啟您的 職業生涯

完成課程並獲得證書

開始
廣告
© . All rights reserved.