我们如何匹配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)
猜你喜欢