替换mysql中的CR字符

时间:2015-12-17 14:56:24

标签: mysql

在我的mysql表中,我有一个Reference字段。用户在那里键入引用,但他们使用enter。我有一个脚本将表导出到csv然后导入另一个mysql数据库。问题在于我的脚本将其导入新数据库,它表示新行是/ n(lines terminated by '\n')。现在,当我导入它并且ref字段中有一个输入时,它认为它是一个新行。我已经搜索了很多选项并尝试在ref字段中替换它,但它仍然是可变的。

我试过的mysql查询确实更新了几行而不是所有内容:

UPDATE tablename SET `ref` = REPLACE(`ref`, '\n', '') WHERE INSTR(`ref`, '\n') > 0;
UPDATE tablename SET `ref` = REPLACE(`ref`, '\r', '') WHERE INSTR(`ref`, '\r') > 0;

这不会返回任何行,我只是为了检查ascii代码,但是如果我在记事本++中导出的csv文件少了所有字符我可以清楚地看到问题是[CR] [LF],我附上了这个印刷品。

SELECT * FROM tablename WHERE `ref`LIKE CONCAT('%',CHAR(13 ),'%') 

enter image description here

我必须在下载脚本中查找并替换此内容?

2 个答案:

答案 0 :(得分:1)

请在此处查看相同问题的答案:Removing carriage returns in Mysql DB

UPDATE xxxxxx set body = replace(body,'\r\n','');
UPDATE xxxxxx set body = replace(body,'\n','');

如果LiamB适合您,请给予LiamB这个答案。

答案 1 :(得分:0)

我遇到了类似的问题,无法像您尝试的那样使用'%\ n%'或concat来解决。 与使用双反斜杠相同

最后,我发现使用4个反斜杠将所有记录与换行符一起返回 例如:

Select * from table, where ref like '%\\\\n%'

这是在MySQL Workbench中