-- ===================================================================== -- 客户绑定产品:存储口径由「产品ID逗号串」改为「产品代码逗号串」 -- 背景:后续产品数据从旧数据库迁移导入,新旧库产品ID不一致, -- 产品代码(product_code)在两库间稳定,故客户绑定关系改用代码。 -- 日期:2026-09-22 -- ===================================================================== -- 1. 列改名(保留原数据,CHANGE 仅改列名/注释) ALTER TABLE bms_customer CHANGE COLUMN product_ids product_codes varchar(1000) DEFAULT NULL COMMENT '绑定产品代码(多个产品代码用逗号分隔,对接旧库产品编码)'; -- 2. 旧值(产品ID逗号串)按 bms_product 映射为产品代码逗号串 -- FIND_IN_SET 逐个匹配逗号串中的ID,GROUP_CONCAT 重新拼为代码串; -- 匹配不到产品的ID会被置为NULL(脏数据,可在客户编辑页重新绑定) UPDATE bms_customer c SET c.product_codes = ( SELECT GROUP_CONCAT(p.product_code) FROM bms_product p WHERE FIND_IN_SET(p.product_id, c.product_codes) ) WHERE c.product_codes IS NOT NULL AND c.product_codes <> '';