我有一个表T1和一个列details,data列有以下示例数据:
select details from T1;
\this is detail 1\this is detail2\
\this is detail 1\this is detail2\
:this is detail 1:this is detail2:
:this is detail 1:this is detail2:
\this is detail 1\this is detail2\我只想获取那些由details分隔的\。
为此,我编写了以下查询:
select details from T1 where details like '\%\%\';,但它没有像预期的那样响应,因为它以\作为逃逸校正器。
因此,它的不完全单倒(‘)显示误差!
那么,怎么做呢?
发布于 2011-08-19 08:05:00
尝试一下,您需要在LIKE语句中避免两次反斜杠。
select details from T1 where details like '\\\\%\\\\%\\\\'http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
,因为MySQL在字符串中使用C转义语法(例如,“\n”来表示换行符),所以必须将您在类似字符串中使用的“\”加倍。例如,要搜索“
\n”,请将其指定为“\\n”。要搜索“\”,请将其指定为“\\\\”;这是因为反斜杠由解析器删除一次,在模式匹配时再删除一次,留下一个反斜杠与.
匹配。
发布于 2011-08-19 08:07:45
MySql有反斜杠的转义字符\(与C类语言相同):
发布于 2011-08-19 08:07:53
尝试使用‘\%\%\\’-使用反斜杠来转义反斜杠。
https://stackoverflow.com/questions/7118616
复制相似问题