如何從 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)
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP