搜反斜杠的疑问

natici 2014-09-05 12:54:18
table a结构如下:
id name
1 ds\' f5

要用反斜杠做关键字搜出这条记录,为什么要用4个反斜杠?
SELECT *
FROM `a`
WHERE `name` LIKE '%\\\\%'
...全文
142 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
九月茅桃 2014-09-05
  • 打赏
  • 举报
回复
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 -A

Database 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: 0

mysql> INSERT INTO a SELECT 2 , "ac\\' f6";
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

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

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧