当前位置:  开发笔记 > 编程语言 > 正文

MySQL TRIM功能是否不修剪换行符或回车符?

如何解决《MySQLTRIM功能是否不修剪换行符或回车符?》经验,为你挑选了5个好方法。

从我的实验来看,它似乎没有这样做.如果确实如此,删除换行符的最佳方法是什么?我正在尝试TRIM接受要删除的角色的参数,从修剪\n和开始\r.



1> 小智..:

我的换行符位于字符串的中间,我无法控制源数据.以下mysql命令对我有用:

REPLACE(FIELD,'\r\n',' ')


这是最受欢迎的解决方案,但不会删除**所有**换行符,不仅仅是在开头和结尾.

2> 小智..:

是的,Trim()将在MySQL中运行.你有两个选择.

1)选择它:

select trim(BOTH '\n' from [field_name]) as field

如果这不起作用,请尝试'\r',如果这不起作用,请尝试'\n\r'.

2)用更新替换表中的错误数据...

update [table_name] set [field_name] = trim(BOTH '\n' from [field_name])

我建议先选择一个来确定你有哪个换行符(\ r或\n).



3> rjmunro..:

标准的MySQL trim函数与我知道的任何其他语言中的trim函数不同,因为它只删除了精确的字符串匹配,而不是字符串中的任何字符.这个存储的函数更像是你在PHP中找到的普通修剪,或者在python等中剥离.

CREATE FUNCTION `multiTrim`(string varchar(1023),remove varchar(63)) RETURNS varchar(1023) CHARSET utf8
BEGIN
  -- Remove trailing chars
  WHILE length(string)>0 and remove LIKE concat('%',substring(string,-1),'%') DO
    set string = substring(string,1,length(string)-1);
  END WHILE;

  -- Remove leading chars
  WHILE length(string)>0 and remove LIKE concat('%',left(string,1),'%') DO
    set string = substring(string,2);
  END WHILE;

  RETURN string;
END;

那么你应该能够做到:

select multiTrim(string,"\r\n\t ");

它应该删除所有换行符,制表符和空格.



4> Peter Crabtr..:

Trim() 在MySQL中只删除空格.

除非你反复使用,否则我不相信有一种内置方法可以删除MySQL中的各种尾随和前导空格Trim().

我建议您使用其他语言来清理当前数据,并确保从现在开始对输入进行清理.



5> 小智..:

select trim(both '\r\n' from FIELDNAME) from TABLE;如果select trim(both '\n' from FIELDNAME) from TABLE;不起作用应该工作.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有