2014-02-20 33 views
1

当我试图解决This Question.我创建了一个表MySQL的转义字符问题

create table mytable(data CHAR(30)); 

INSERT INTO mytable VALUES('d\\one'),('d\\two'),('d\\three'); 

SELECT * FROM mytable; 
+---------+ 
| data | 
+---------+ 
| d\one | 
| d\two | 
| d\three | 
+---------+ 
3 rows in set (0.00 sec) 

现在的伪记录,当我选择记录,我越来越没有结果,我曾尝试与像许多组合,而且没有运气。

例:

SELECT * FROM mytable WHERE data LIKE "d\\%"; 
Empty set (0.00 sec) 


SELECT * FROM mytable WHERE data LIKE 'd\\%'; 
Empty set (0.00 sec) 

回答

2

使用三重斜线:

SELECT * FROM mytable WHERE data LIKE "d\\\%" 
+0

你是正确的,谢谢! –

1

或者使用INSTR()代替

SELECT * FROM mytable WHERE instr(data, 'd\\') = 1 
+0

+1! –

+0

我不知道MySQL是否会使用索引(因为'LIKE'substring%''会)。但是 - 需要测试.. –