什么是从文本中删除\n\r的SQL查询?

use*_*594 12 mysql sql

我正在使用MySQL.我的数据有一个名为的列text,它使用TEXT数据类型.

此列中的每条记录都有几个换行符.我想用SQL查询删除所有新行.我怎样才能做到这一点?

Dev*_*art 20

试试这个 -

CREATE TABLE table1(column1 TEXT);
INSERT INTO table1 VALUES ('text1\r\ntext2
text3');

SELECT * FROM table1;
--------
text1
text2
text3

UPDATE table1 SET column1 = REPLACE(column1, '\r\n', '');
SELECT * FROM table1;
--------
text1text2text3
Run Code Online (Sandbox Code Playgroud)


小智 11

之前的建议对我不起作用.如果我实际输入\r\n文本作为文本,它似乎只有工作.我发现以下内容效果很好 -

replace(replace([MyFieldName],char(13),''),char(10),'')
Run Code Online (Sandbox Code Playgroud)

我还在我的表中创建了一个使用此公式的计算字段.这样我就可以在我的程序区域中引用该字段,这些字段打破了原始字段内容.


Tus*_*har 7

试试这个

REPLACE(REPLACE(FIELD, '\n', ''), '\r', '')
Run Code Online (Sandbox Code Playgroud)

  • 同意。这个保证那些 \n 和 \r 字符(以任何顺序和组合)不会从替换中逃脱。`UPDATE table1 SET column1 = REPLACE(REPLACE(column1, '\n', ''), '\r', '');` (2认同)

小智 6

给定建议,即REPLACE(REPLACE(DBField, '\n', ''), '\r', '')如果存在类似html的不可见html代码,它将无法正常工作\n \r。为此,您必须使用char代码。

例:

REPLACE(REPLACE(REPLACE(DBField, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')
Run Code Online (Sandbox Code Playgroud)