91

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

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

并且 trim 可以删除 \n

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

 update mytable SET title = TRIM(title, '\n') where 1=1

它会起作用吗?然后我可以直接执行这个查询而不需要循环!

谢谢

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

4

9 回答 9

132
UPDATE test SET log = REPLACE(REPLACE(log, '\r', ''), '\n', '');

为我工作。

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

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

于 2012-07-24T08:30:35.227 回答
125

你的语法错误:

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

添加:

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

update mytable SET title = TRIM(LEADING '\n' FROM title)
于 2009-10-01T16:23:53.720 回答
18

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

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

 UPDATE mytable SET `title` = TRIM(REPLACE(REPLACE(REPLACE(`title`, '\n', ' '), '\r', ' '), '\t', ' '));
于 2013-12-11T18:54:13.680 回答
9

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

以上工作正常。

于 2015-06-01T08:07:46.413 回答
7

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

UPDATE table_name SET col_name = TRIM(TRAILING '\r' FROM col_name)
于 2015-06-17T22:41:33.323 回答
3

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

REPLACE(REPLACE(column_name , '\n', ''), '\r', '')
于 2020-05-12T22:07:24.660 回答
2
UPDATE mytable SET title=TRIM(REPLACE(REPLACE(title, "\n", ""), "\t", ""));
于 2009-10-02T10:44:52.107 回答
0

我的 2 美分。

为了摆脱我的\n,我需要做一个\\n。希望对某人有所帮助。

update mytable SET title = TRIM(TRAILING '\\n' FROM title)
于 2017-02-13T00:16:38.097 回答
0

对于换行符

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);

阅读更多: MySQL TRIM 函数

于 2020-02-11T03:36:23.090 回答