Excel中有大量不合法的符号,导入到系统之后,数据库有很多脏数据,对此下述展开sql的清洗教程
在数据库的文本字段中,可能会存在多余的逗号或符号,如,销售,, 或 二手车,销售,,
这种情况
希望清理这些数据,使其符合以下规则:
去除前导和尾部的多余逗号,例如:
二手车,销售,, → 二手车,销售
,生产,, → 生产
保留中间合理的逗号分隔,例如:
,生产,销售 → 生产,销售(不用删除逗号)
UPDATE industry_monitoring
SET matched_keywords = TRIM(BOTH ',' FROM matched_keywords);
TRIM(BOTH ',' FROM matched_keywords)
:删除 matched_keywords 字段值两端的逗号
如果字段值两端可能存在空格,可以进一步使用 TRIM() 函数处理空格:
UPDATE industry_monitoring
SET matched_keywords = TRIM(BOTH ',' FROM TRIM(matched_keywords));
UPDATE industry_monitoring
SET matched_keywords = TRIM(BOTH ',' FROM matched_keywords);
TRIM(BOTH ',' FROM matched_keywords)
:删除 matched_keywords 字段值两端的逗号
如果需要同时处理空格,可以嵌套 TRIM() 函数:
UPDATE industry_monitoring
SET matched_keywords = TRIM(BOTH ',' FROM TRIM(matched_keywords));
UPDATE industry_monitoring
SET matched_keywords = LTRIM(RTRIM(REPLACE(REPLACE(matched_keywords, ', ', ''), ', ', '')));
REPLACE(matched_keywords, ', ', '')
:移除字段值中的逗号和空格
LTRIM(RTRIM(...))
:移除字段值两端的空格
注意事项
SELECT matched_keywords, TRIM(BOTH ',' FROM TRIM(matched_keywords)) AS cleaned_keywords
FROM industry_monitoring;
通过上述 SQL 语句,可以有效地清理 matched_keywords 字段中多余的符号,同时保留字段值中间的符号
如果数据中存在 连续的 ,(如 二手车,销售,),那么这个 SQL 只能去掉首尾的 ,,不会去掉中间的多余逗号
截图如下:
如果只是去掉前后的逗号,可以这样写:
UPDATE industry_monitoring
SET matched_keywords = TRIM(BOTH ',' FROM matched_keywords);
但如果要去掉 前后的逗号 + 连续的 ,,可以这样优化:
UPDATE industry_monitoring
SET matched_keywords = TRIM(BOTH ',' FROM REPLACE(matched_keywords, ',,', ','));