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