我想从MySQL列中删除尾随换行符。 trim()只删除空格,但我也想删除尾随换行符。 有人可以建议吗?
答案 0 :(得分:10)
您可以通过在末尾匹配“\ r”直接替换这些,然后替换“\ r”。
示例:
UPDATE Person SET firstName = REPLACE(firstName, '\n', '')
where firstName LIKE '%\n'
或
UPDATE Person SET firstName = REPLACE(firstName, '\r', '')
where firstName LIKE '%\r'
答案 1 :(得分:3)
刚遇到这个问题,就像这样照顾它。
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)和空格。
答案 2 :(得分:1)
尝试这样的事情:
REPLACE(FIELD,'\r\n',' ')
答案 3 :(得分:1)
这将删除所有转义字符:
TRIM(TRAILING '\\' FROM (REPLACE(REPLACE(REPLACE(column_name, '\n', ' '), '\r', ' '), '\\', ' ')))
答案 4 :(得分:0)
对Wallack的想法的另一次投票,但更具体地说:
Update YOURTABLENAME set YOURCOLUMNNAME = replace(YOURCOLUMNNAME, '\r\n','')
基本上这应该取代回车并且什么也不做。
祝你好运。答案 5 :(得分:0)
基于EternalHour的answer:
conda install --channel https://conda.anaconda.org/Yaafe yaafe
这个一个一个地删除尾随UPDATE TABLE_NAME SET `COLUMN_NAME` = TRIM(TRIM(TRAILING '\r' FROM TRIM(TRAILING '\n' FROM TRIM(`COLUMN_NAME`))))
,因此要么是换行符,要么是回车符或两者都有,它将被剥离,并且还会删除该过程之前和之后的空格。
答案 6 :(得分:0)
根据操作系统,回车将是“\r\n”或只是“\n”。它不会总是“\r\n”。
清理此问题的正确方法是首先删除换行符之后的空格。然后删除换行符和换行符之前可能存在的空格。
UPDATE table SET column = TRIM(TRAILING ' ' FROM TRIM(TRAILING '\r' FROM TRIM(TRAILING '\n' FROM TRIM(TRAILING ' ' FROM column))));
这不适用于有嵌套尾随空格和换行符的更复杂的情况。您将需要对其进行正则表达式替换,这并非在所有 db 版本中都可用。
UPDATE table SET column = REGEXP_REPLACE(column, '[ \\r\\n]*$', '');