如何在"\ detail1\detail2 \"上应用SQL(转义'\')?

Yug*_*dle 2 mysql sql sql-like

我有一个T1带有列的表details,数据列有以下示例数据:

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\
Run Code Online (Sandbox Code Playgroud)

我想只获取那些details被分隔的\.

为此,我写了以下查询:

select details from T1 where details like '\%\%\';
Run Code Online (Sandbox Code Playgroud)

但它没有像预期的那样回应,因为它作为逃脱校正器.

所以,它显示错误的不完整单倒(')!

那么,怎么做呢?

Juh*_*älä 7

试试这个,你需要在LIKE语句中两次转义反斜杠.

select details from T1 where details like '\\\\%\\\\%\\\\'
Run Code Online (Sandbox Code Playgroud)

http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html

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