如何处理数据库表字段值中的特殊字符?

现网业务运行过程中,可能会遇到数据库表字段值包含特殊字符的场景,此场景虽然不常见,但只要一出现,其影响却往往是致命的,且排查难度较高,非常有必要了解一下。

表字段值中的特殊字符可以分为两类:可见字符、不可见字符。

可见字符处理

业务的原始数据一般是文本文件,因此,数据插入数据库表时需要按照分隔符进行分割,字段值中包含约定的分隔符、文本识别符都属于特殊字符。

常见的分隔符:, | ;

文本识别符:'' ""

这种特殊字符会导致数据错列,json无法翻译等问题,严重影响业务运行,应该提前处理掉。有人就说了,我接手的别人的数据库,不清楚是不是存在这个问题,这个咋办呢?没关系的,一条update语句就可以拯救你。

-- 语法
UPDATE 
   table_name
SET 
   column_name = REPLACE(column_name, old_text, new_text)
WHERE 
   condition;
-- 样例
UPDATE 
   customer
SET 
   email = REPLACE (email, '|', '_');

不可见字符处理

UPDATE `中端1月` SET WORKID = REPLACE(REPLACE(WORKID, CHAR(10),''), CHAR(13),'');