我已经导入了mySQLi数据库并且一切正常,但我的列中到处都有'\r\n'
(其中有换行符)。
我测试了我在google上找到的所有东西,不幸的是我没有成功。 我想做的替换很简单:
UPDATE llx_societe_alarme
SET historique = REPLACE(historique, '\r\n', CHAR(13)+CHAR(10))
它有效但影响0行 你能帮帮我吗?谢谢!
答案 0 :(得分:1)
REPLACE(txt, '\\r\\n', CHAR(13)+CHAR(10))
似乎消除了\ r或\ n&n;并正确替换了char(13)+ char(10)。
为什么呢? \r
或\n
是一个特殊的转义字符序列,因此\需要转义。
文档来源:
No_backslash_escapes
)
使用rextester进行更新:
更新有效。 (我不得不从SQL小提琴切换到它对我保持计时)。这对我来说意味着:
请使用导致00的数据更新上面的rextester.com示例。可能还有其他非显示字符或其他值导致此问题。我在MCVE之后,因为我无法重现这个问题。
答案 1 :(得分:0)
感谢您的回答,要明确我已经' \ r \ n'在很多领域,我也有' \ n \ n&n;或者' \ r'或者' \ n'在移动我的数据库之前我到处都有回车。我只想删除它并放回车。
示例,我有:
现在我有:
或者在某些情况下:
和其他只是' \ r'或者' \ n'或' \ n \ n'
它在我的客户和我的网站上都可见。
谢谢!
答案 2 :(得分:0)
在MySQL 5.6中,对我有用的是
UPDATE table
SET txt = REPLACE(txt, '\\r\\n', "\r\n")
这给了我真实的回车。双引号字符串中的“\ r \ n”序列似乎给出了真正的回车符,'\ r \ n'正确地找到字符串版本。
你也可以做一个
SELECT txt, REPLACE(txt, '\\r\\n', "\r\n")
FROM table
在运行实际更新之前对结果进行问题排查。