本文是基于:MySQL8 使用Like更新字段包含 \, 需要使用\\\\ 进行转义查询 的深入研究
在使用MySQL8 之replace 函数,变更部分字段包含特殊字符(\)之总结处理。
特殊字符 | Like查询 (模糊查询) | replace 函数 或(精准查询=) |
\ | \\\\ | \\ |
\n | \\\\n | \\n |
\' | \\\\' | \\' |
\'' | \\\\'' | \\'' |
\b | \\\\b | \\b |
\r | \\\\r | \\r |
\t | \\\\t | \\t |
\Z | \\\\Z | \\Z |
由于 MySQL在字符串中使用 C转义语法(例如, 用\n代表一个换行字符),在LIKE字符串中,必须将用到的\\\\n双写。例如, 若要查找 \n, 必须将其写成 \\n。而若要查找 \, 则必须将其写成 \\\\
原因:是反斜线符号会被语法分析程序剥离一次,在进行模式匹配时,又会被剥离一次,最后会剩下一个反斜线符号接受匹配。