1.情景展示
在mysql数据库中,经常会遇到这样情况:
某表现有数据,经常会存在:回车符、换行符、制表符或空格,如何把这些多余的符号从数据当中剔除出去?
2.具体分析
通过char()和replace()函数来完成;
char(十进制数字):可以得到对应的ASCII字符;
replace():可以完成字符替换。
3.解决方案
CHAR(9),对应的是:水平制表符;
CHAR(10),对应的是:换行符;
CHAR(13),对应的是:回车符;
CHAR(32),对应的是:空格。
一起先来看看,这些字符长啥样?
看不出来,我们将其复制到notpad++当中;
并通过设置,将这些对应的符号显示出来:
相对应的:
第一行是水平制表符;第二行是换行符;第三行是回车符;第三行选中的那个是空格符。
第一步:查询包含这些字符的数据;
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),'');
如果表的数据量不大的话,可以直接替换;
否则的话,还是需要我们加上限制条件的。
写在最后
哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!