我想要从我的MySQL列中删除尾随的换行符。 trim()只能删除空格,但我也想删除尾随的换行符。 有人可以提供建议吗?
我想要从我的MySQL列中删除尾随的换行符。 trim()只能删除空格,但我也想删除尾随的换行符。 有人可以提供建议吗?
你可以直接从SQL中匹配结尾的"\r",然后替换掉它们。
示例:
UPDATE Person SET firstName = REPLACE(firstName, '\n', '')
where firstName LIKE '%\n'
或者UPDATE Person SET firstName = REPLACE(firstName, '\r', '')
where firstName LIKE '%\r'
我刚刚遇到了这个问题,解决方法如下:
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)和空格。
TRIM(TRAILING '\\' FROM (REPLACE(REPLACE(REPLACE(column_name, '\n', ' '), '\r', ' '), '\\', ' ')))
\n
前面加上一个额外的“\”,所以我的代码看起来像这样:TRIM(TRAILING '\\' FROM (REPLACE(REPLACE(REPLACE(column_name, \\n', ' '), '\r', ' '), '\\', ' ')))
。 - NeoUPDATE 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]*$', '');
我使用以下查询从数据库内容中删除不需要的字符
UPDATE tableName
SET titel = TRIM(
REPLACE(
REPLACE(
REPLACE(
REPLACE(titel, CHAR(9), CHAR(32)),
CHAR(13), CHAR(32)),
CHAR(10), CHAR(32)),
CONCAT(CHAR(32), CHAR(32)), CHAR(32))
)
WHERE 1;
UPDATE tableName
SET titel = TRIM(REGEXP_REPLACE(REGEXP_REPLACE(seminar_titel, '[\\t\\r\\n]', ' '), '\\s+', ' '))
WHERE 1;
这在几秒钟内处理成千上万条记录。:)
基于EternalHour的答案:
UPDATE TABLE_NAME SET `COLUMN_NAME` = TRIM(TRIM(TRAILING '\r' FROM TRIM(TRAILING '\n' FROM TRIM(`COLUMN_NAME`))))
这个函数会逐个删除末尾的\r\n
,所以无论是换行符还是回车符或者两者都有,都将被剥离,并且在此过程中也会删除前后的空格。
可以尝试这样做:
REPLACE(FIELD,'\r\n',' ')
支持Wallack的想法,但更具体地说:
Update YOURTABLENAME set YOURCOLUMNNAME = replace(YOURCOLUMNNAME, '\r\n','')
本质上,这应该将回车和换行符替换为空。
祝你好运。
First{linebreak}Second
替换为 FirstSecond
。 - robotik