我不明白这个MySQL的行为:如果我想显示A \ B,我就可以选择"a\\b"
这没有问题的工作:
mysql> select "a\\b";
+-----+
| a\b |
+-----+
| a\b |
+-----+
1 row in set (0.05 sec)
但是,如果我wnat搜索使用LIKE包含一个表中的\字符串,我需要双击逃不过我的“\”。 为什么呢?
下面是一个例子。
我们准备一张小桌子。
create table test ( test varchar(255) );
insert into test values ( "a\\b" ) , ( "a\\b\\c" ) , ( "abcd" );
mysql> select * from test;
+-------+
| test |
+-------+
| a\b |
| a\b\c |
| abcd |
+-------+
3 rows in set (0.05 sec)
我们试图让由“A \ B”开头的条目...
mysql> select * from test where test LIKE "a\\b%";
+------+
| test |
+------+
| abcd |
+------+
1 row in set (0.05 sec)
为什么\\
只是忽略了呢? 为什么我需要双击逃生basckslash得到我预期的结果?
mysql> select * from test where test LIKE "a\\\\b%";
+-------+
| test |
+-------+
| a\b |
| a\b\c |
+-------+
2 rows in set (0.04 sec)