如何在mysql中删除数据行中的新行字符?

如何在mysql中删除数据行中的新行字符?,mysql,trim,Mysql,Trim,我可以循环遍历php脚本中的所有行并执行以下操作 UPDATE mytable SET title=“”.trim($row['title'])。“其中id=“”。$row['id'])” 和修剪可以删除\n 但我只是想知道是否可以在一个查询中完成同样的操作 update mytable SET title = TRIM(title, '\n') where 1=1 行吗?然后我就可以执行这个查询,而不需要循环 谢谢 (注:我可以测试它,但表非常大,不想弄乱数据,所以如果您以前测试过类似的内

我可以循环遍历php脚本中的所有行并执行以下操作

UPDATE mytable SET title=“”.trim($row['title'])。“其中id=“”。$row['id'])”

和修剪可以删除\n

但我只是想知道是否可以在一个查询中完成同样的操作

 update mytable SET title = TRIM(title, '\n') where 1=1
行吗?然后我就可以执行这个查询,而不需要循环

谢谢

(注:我可以测试它,但表非常大,不想弄乱数据,所以如果您以前测试过类似的内容,请想想)

您的语法错误:

update mytable SET title = TRIM(TRAILING '\n' FROM title)
添加:

如果换行符位于字段的开头:

update mytable SET title = TRIM(LEADING '\n' FROM title)
为我工作

虽然它很相似,但它也将删除\r\n

1)用空格替换所有新行和制表符

2) 删除所有前导空格和尾随空格

 UPDATE mytable SET `title` = TRIM(REPLACE(REPLACE(REPLACE(`title`, '\n', ' '), '\r', ' '), '\t', ' '));

updatemytable set title=trim(替换(替换(title,CHAR(13),“”),CHAR(10),“”))


上面的工作正常。

从Excel导入时删除尾部返回。当您执行此操作时,您可能会收到一个没有WHERE的错误;忽略并执行

UPDATE table_name SET col_name = TRIM(TRAILING '\r' FROM col_name)
我的2美分

要清除我的\n,我需要执行\\n。希望这能帮助别人

update mytable SET title = TRIM(TRAILING '\\n' FROM title)

对于新行字符

UPDATE table_name SET field_name = TRIM(TRAILING '\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\t' FROM field_name);
对于所有空白字符

UPDATE table_name SET field_name = TRIM(TRAILING '\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\t' FROM field_name);
阅读更多:

玩上面的答案,这一个对我有用

REPLACE(REPLACE(column_name , '\n', ''), '\r', '')

您可以去掉where子句……但要小心修剪,因为集合中可能有其他字符(如回车'\r')。在提出此问题之前,您应该对此进行测试。它起作用了。若你们想在大表上测试它,你们可以使用LIMIT子句。WHERE子句有什么问题?只是curious@PhillPafford没什么,从技术上讲,这只是多余的。(我知道这已经超过5年了,但可能会帮助其他人来阅读。)来自MSSQL,这种语法对我来说非常陌生。我以为你在用伪代码!但是它起作用了:)供参考的文档。这不会删除尾随\n,它会删除所有\n,这在这里是不需要的。这可能对确切的OP不起作用,但在我处理的一个情景中确实有帮助,+1为我工作,谢谢。正是我需要的。工作了!很高兴去!这不会删除尾随\n,它会删除所有\n,这在这里是不需要的。当“\n”不起作用时,此选项很有用(在mysql workbench上测试)