如何从 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.