无法使用concat函数进行'\'连接

3

我想在我的表中保存一条mediumtext数据,以下是我的代码:

concat('{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}\viewkind4\uc1\pard\fs18','1','\par }')

这应该是一个RTF文件,但当我运行它时却发生了这样的情况:

{
tf1ansiansicpg1252deff0deflang1033{fonttbl{f0fnilfcharset0 Arial;}}viewkind4uc1pardfs181par }

应该是这样的:
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}\viewkind4\uc1\pard\fs181\par }

反斜杠符号消失了,有人知道该怎么做吗?

2个回答

3
反斜杠(\)被用作转义字符:它是一个声明,表示接下来的字符应该以特殊方式处理。例如,\r 被读取为回车符,这可以解释你的结果开头为什么有换行符。由于后面的字符没有任何特殊含义,因此你的许多反斜杠显然被忽略了。
在需要输入反斜杠时,请使用双反斜杠(\\)。输出结果将只有一个反斜杠。这是因为第一个反斜杠转义了第二个反斜杠,表示它应该被视为一个字面上的反斜杠。

2

和Jonathan所说的类似,我有这个解决方案:

CONCAT('{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\fnil\\fcharset0 Arial;}}\\viewkind4\\uc1\\pard\\fs18','1','\\par }')

使用此字符串进行插入。

这里是 SQLFiddle


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接