zz正则表达式中匹配一个反斜杠要用四个反斜杠,为什么呢?分析一下“\\\\”,第一个斜杠是转义符,第二个斜杠是斜杠本身,第三个斜杠是转义符,第四个斜杠是斜杠本身。
有2点要清楚:
1.字符串里面表示斜杠就需要两个斜杠如“\\”
2.正则表达式里的斜杠需要转意,是用“\\”标示。
这样就比较好解释:
我们先要表示正则表达式里面的斜杠“\\”,然后再用字符串表示出来。而这2个斜杠分别需要一个转义符,这样就成了4个斜杠在正则表达式里面表示一个斜杠。

解决方案 »

  1.   

    SELECT * FROM `a` WHERE  `name` LIKE "%\\\%";   需要3个反斜杠。mysql> 
    mysql> use test;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -ADatabase changed
    mysql> DROP TABLE a;
    Query OK, 0 rows affected (0.00 sec)mysql> CREATE TABLE a SELECT 1 AS id, "ds\\' f5" AS NAME;
    Query OK, 1 row affected (0.00 sec)
    Records: 1  Duplicates: 0  Warnings: 0mysql> INSERT INTO a SELECT 2 , "ac\\' f6";
    Query OK, 1 row affected (0.00 sec)
    Records: 1  Duplicates: 0  Warnings: 0mysql> select * from a;
    +----+---------+
    | id | NAME    |
    +----+---------+
    |  1 | ds\' f5 |
    |  2 | ac\' f6 |
    +----+---------+
    2 rows in set (0.00 sec)mysql> SELECT * FROM `a` WHERE  `name` LIKE "%\\\%";
    +----+---------+
    | id | NAME    |
    +----+---------+
    |  1 | ds\' f5 |
    |  2 | ac\' f6 |
    +----+---------+
    2 rows in set (0.00 sec)mysql>