我想从我的 MySQL 列中删除尾随换行符。trim() 只删除空格,但我也想删除尾随换行符。有人可以建议吗?
问问题
24244 次
7 回答
15
您可以通过匹配末尾的“\r”直接从 SQL 替换这些,然后替换那个“\r”。
例子:
UPDATE Person SET firstName = REPLACE(firstName, '\n', '')
where firstName LIKE '%\n'
或者
UPDATE Person SET firstName = REPLACE(firstName, '\r', '')
where firstName LIKE '%\r'
于 2013-12-05T13:13:31.743 回答
4
刚遇到这个问题,就这样处理了。
UPDATE table_name SET col_name = REPLACE(TRIM(TRAILING ' ' FROM col_name),
TRIM(TRAILING '\r' FROM col_name),
TRIM(TRAILING '\n' FROM col_name))
这将删除新行 (\n)、回车 (\r) 和空格。
于 2015-04-09T10:09:30.150 回答
2
这将删除所有转义字符:
TRIM(TRAILING '\\' FROM (REPLACE(REPLACE(REPLACE(column_name, '\n', ' '), '\r', ' '), '\\', ' ')))
于 2016-10-01T01:14:33.470 回答
1
根据操作系统,回车将是“\r\n”或只是“\n”。它不会总是“\r\n”。
清理它的正确方法是首先删除换行符之后的空格。然后删除换行符转义字符,然后删除换行符之前可能存在的空格。
UPDATE table SET column = TRIM(TRAILING ' ' FROM TRIM(TRAILING '\r' FROM TRIM(TRAILING '\n' FROM TRIM(TRAILING ' ' FROM column))));
这不适用于嵌套尾随空格和新行的更复杂的情况。您将需要正则表达式替换它,这并非在所有数据库版本中都可用。
UPDATE table SET column = REGEXP_REPLACE(column, '[ \\r\\n]*$', '');
于 2021-07-07T04:08:22.293 回答
0
尝试这样的事情:
REPLACE(FIELD,'\r\n',' ')
于 2013-06-11T13:14:54.123 回答
0
基于 EternalHour 的回答:
UPDATE TABLE_NAME SET `COLUMN_NAME` = TRIM(TRIM(TRAILING '\r' FROM TRIM(TRAILING '\n' FROM TRIM(`COLUMN_NAME`))))
这一个一个一个地删除尾随\r\n
,因此它是换行符或回车或两者兼而有之,它将被剥离,并且还会在处理之前和之后删除空格。
于 2016-07-29T05:32:18.920 回答
-1
对 Wallack 的想法的另一票,但更具体地说:
Update YOURTABLENAME set YOURCOLUMNNAME = replace(YOURCOLUMNNAME, '\r\n','')
从本质上讲,这应该取代回车并没有任何内容。
祝你好运。
于 2014-04-08T19:40:54.407 回答