mysql 如何去除表数据当中的回车符,换行符,空格和水平制表符?

1.情景展示

在mysql数据库中,经常会遇到这样情况:

某表现有数据,经常会存在:回车符、换行符、制表符或空格,如何把这些多余的符号从数据当中剔除出去?

2.具体分析

通过char()和replace()函数来完成;

char(十进制数字):可以得到对应的ASCII字符;

replace():可以完成字符替换。

3.解决方案

CHAR(9),对应的是:水平制表符;

CHAR(10),对应的是:换行符;

CHAR(13),对应的是:回车符;

CHAR(32),对应的是:空格。

一起先来看看,这些字符长啥样?

mysql 如何去除表数据当中的回车符,换行符,空格和水平制表符?

看不出来,我们将其复制到notpad++当中;

mysql 如何去除表数据当中的回车符,换行符,空格和水平制表符?

并通过设置,将这些对应的符号显示出来:

mysql 如何去除表数据当中的回车符,换行符,空格和水平制表符?

相对应的:

第一行是水平制表符;第二行是换行符;第三行是回车符;第三行选中的那个是空格符。

第一步:查询包含这些字符的数据;

SELECT
	ORGCODE 
FROM
	base_org_info 
WHERE
	LOCATE( CHAR ( 9 ), ORGCODE ) 
	OR LOCATE( CHAR ( 10 ), ORGCODE ) 
	OR LOCATE( CHAR ( 13 ), ORGCODE ) 
	OR LOCATE( CHAR ( 32 ), ORGCODE );

说明:如果嫌麻烦,可以直接进行第二步。

第二步:更新这些数据。

将这些数据的上述特殊空白字符替换成空字符。

UPDATE base_org_info 
SET ORGCODE = REPLACE(REPLACE(REPLACE(REPLACE(ORGCODE,CHAR(13),''),CHAR(10),''),CHAR(9),''),CHAR(32),'');

如果表的数据量不大的话,可以直接替换;

否则的话,还是需要我们加上限制条件的。

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

上一篇:ES6查漏补缺


下一篇:js替换特定字符