Mysql查询返回没有数据与转义\

时间:2014-04-10 15:38:27

标签: mysql escaping

我正在尝试查询我们的MSSQL数据库,但是当数据显然存在时我没有数据。

首先我查询

SELECT id, instruction_link FROM work_instructions WHERE instruction_link LIKE "%\\\\cots-sbs%";

返回100多行。 http://tinypic.com/r/ief8td/8 (抱歉无法发布实际图片,没有足够的代表:(

但是,如果我查询

SELECT id, instruction_link FROM work_instructions WHERE instruction_link LIKE "%\\\\cots-sbs\\%";

http://tinypic.com/r/33ksw3q/8

第二次查询没有结果。我不知道我在这里做错了什么。看起来很简单,但我对它没有任何意义..

提前致谢。

1 个答案:

答案 0 :(得分:1)

正如LIKE所述:

  

注意

     

因为MySQL在字符串中使用C转义语法(例如,“\n”来表示换行符),所以必须将LIKE字符串中使用的任何“\”加倍。例如,要搜索“\n”,请将其指定为“\\n”。要搜索“\”,请将其指定为“\\\\”;这是因为解析器会将反斜杠剥离一次,并且在进行模式匹配时再次剥离反斜杠,只留下一个反斜杠。

\\%被解析为字符串,其中包含一个字面反斜杠后跟一个百分比字符,然后将其解释为仅包含文字百分号的模式