如何从mysql中的数据行中删除换行符?

Tig*_*ger 80 mysql trim

我可以遍历php脚本中的所有行并执行

UPDATE mytable SET title = "'.trim($row['title']).'" where id = "'.$row['id'].'";

和修剪可以删除\n

但我只是想知道在一个查询中是否可以做同样的事情?

 update mytable SET title = TRIM(title, '\n') where 1=1
Run Code Online (Sandbox Code Playgroud)

它会起作用吗?然后我可以执行此查询而无需循环!

谢谢

(PS:我可以测试它,但是表格非常大,不想弄乱数据,所以只是想想你以前是否测试过这样的东西)

lon*_*eck 114

你的语法错了:

update mytable SET title = TRIM(TRAILING '\n' FROM title)
Run Code Online (Sandbox Code Playgroud)

  • 来自MSSQL,这种语法对我来说非常陌生.我以为你在使用伪代码!但它工作:) (6认同)

Łuk*_*iak 110

UPDATE test SET log = REPLACE(REPLACE(log, '\r', ''), '\n', '');
Run Code Online (Sandbox Code Playgroud)

为我工作.

虽然它相似,它也会摆脱\ r \n

http://lists.mysql.com/mysql/182689

  • 这可能不适用于确切的OP,但确实有助于我正在处理的错误,+ 1 (18认同)
  • 这不会删除尾随\n,它会删除所有\n,这是不需要的. (5认同)

Geo*_*Geo 12

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

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

 UPDATE mytable SET `title` = TRIM(REPLACE(REPLACE(REPLACE(`title`, '\n', ' '), '\r', ' '), '\t', ' '));
Run Code Online (Sandbox Code Playgroud)


Pha*_*ati 9

update mytable set title=trim(replace(REPLACE(title,CHAR(13),''),CHAR(10),''));

以上工作正常.

  • 当'\n'不起作用时(在mysql工作台上测试),这个很有用 (3认同)

Uly*_*nep 7

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

UPDATE table_name SET col_name = TRIM(TRAILING '\r' FROM col_name)
Run Code Online (Sandbox Code Playgroud)