故事背景
今天四大运营商其中一个交给我们一个 Excel 表格,我们没有做任何数据清理就导入 MySQL 了,导致 a 字段出现了大量不可见字符。
检查
检查时,我们要知道不可见字符都有哪些。通常是空格、制表符、换行符、BOM头。这里我们主要清理BOM头,也就是 UTF-8 BOM 头:
SELECT a AS 原始数据, -- 核心处理逻辑:先删BOM头→清空白 TRIM(REPLACE(a, CHAR(0xEF, 0xBB, 0xBF), '')) AS 清理后, LENGTH(a) AS 原始字节长度, CHAR_LENGTH(a) AS 原始字符长度, -- 验证清理后的长度 LENGTH(TRIM(REPLACE(a, CHAR(0xEF, 0xBB, 0xBF), ''))) AS 清理后字节长度, CHAR_LENGTH(TRIM(REPLACE(a, CHAR(0xEF, 0xBB, 0xBF), ''))) AS 清理后字符长度 FROM yys_data WHERE LENGTH(a) != CHAR_LENGTH(a);
清理
所以,对应清理时,也就非常简单:
UPDATE yys_data SET a = TRIM(REPLACE(a, CHAR(0xEF, 0xBB, 0xBF), '')) WHERE LENGTH(a) != CHAR_LENGTH(a);
到此这篇关于MySQL检查和清理不可见字符的实现步骤的文章就介绍到这了,
