一、需求说明
因为有新功能需要上生产环境,总有一些乱七八糟的兼容历史数据的活要去做,比如以下。
需要批量的更新数据库中某个字段(如id列中原来是ABCDEFG,需要改成[“ABCDEFG”]),
没错,就是需要对现有的业务数据进行一轮加上特殊字符[“”]的修改。
但是因为没有做过,总是以为不能实现嘛,以下是具体的实现方法与思路
二、需求实现
因为是MySQL,首先就想到了MySQL字符串拼接函数。
但是MySQL字符串拼接函数有以下三个,我要选那个呢?
- CONCAT
- CONCAT_WS
- GROUP_CONCAT
不管三七二十一,直接用第一个吧。
三、CONCAT介绍
3.1 CONCAT说明
对指定字符进行拼接
3.2 CONCAT语法
CONCAT(str1,str2,…)
3.3 CONCAT语法说明
CONCAT(字符1,字符2,…)
四、CONCAT实操
select id, CONCAT ('["',id , '"]')as contat from 某表
看输出,还真的实现了我想要的结果了。
那直接update吧。于是有了以下业务的内容
UPDATE theme_activity_gift
SET spu_id_array = CONCAT('["', spu_id_array, '"]')
WHERE spu_id_array IS NOT NULL
UPDATE theme_activity_gift
SET spu_id_array = CONCAT('[',']')
WHERE spu_id_array IS NULL