创建表
CREATE TABLE `erp_apply_form` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长id',
`self_apply_id` varchar(45) DEFAULT NULL COMMENT '自发起的id',
`record_id` varchar(45) DEFAULT NULL COMMENT '申请关联的业务记录id,合同,付款,出库,某某审批记录的id',
`approve_id` varchar(45) DEFAULT NULL COMMENT 'erp业务审批流程id',
`form_title` varchar(100) DEFAULT NULL COMMENT '表单抬头,如果是容器或者表格,容器表格头名称',
`form_value` varchar(1000) DEFAULT NULL COMMENT '表单值',
`is_abstract` varchar(45) DEFAULT NULL COMMENT '是否是摘要放到卡片上的,1:是,0:不是',
`add_id` varchar(45) DEFAULT NULL COMMENT '添加人',
`add_time` datetime DEFAULT NULL COMMENT '添加时间'
PRIMARY KEY (`id`) USING BTREE,
KEY `form_group_id` (`form_group_id`)
) ENGINE=InnoDB AUTO_INCREMENT=94839 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='表单';
添加表格数据
INSERT INTO `erp_apply_form`(`id`, `self_apply_id`, `record_id`, `approve_id`, `form_title`, `form_value`, `is_abstract`, `add_id`, `add_time`) VALUES (16065, '1273', '45', '25', '供方公司', '中国淘宝', '0', '1035', '2020-12-28 14:58:03');
INSERT INTO `erp_apply_form`(`id`, `self_apply_id`, `record_id`, `approve_id`, `form_title`, `form_value`, `is_abstract`, `add_id`, `add_time`) VALUES (16066, '1273', '45', '25', '需方公司', '美国ebay', '0', '1035', '2020-12-28 14:58:03');
INSERT INTO `erp_apply_form`(`id`, `self_apply_id`, `record_id`, `approve_id`, `form_title`, `form_value`, `is_abstract`, `add_id`, `add_time`) VALUES (16067, '1274', '46', '25', '供方公司', '中国淘宝', '0', '1035', '2020-12-28 14:58:03');
INSERT INTO `erp_apply_form`(`id`, `self_apply_id`, `record_id`, `approve_id`, `form_title`, `form_value`, `is_abstract`, `add_id`, `add_time`) VALUES (16068, '1274', '46', '25', '需方公司', '美国ebay', '0', '1035', '2020-12-28 14:58:03');
1、mysql表中初始数据
2、form_value列数据进行互换,如下图
3、解决问题思想:(通过中间表数据,来保存原始数据)
对于同列同组的数据进行数据互换,这个时候如果直接更新某一列会导致原始数据覆盖,从而影响下一列数据的赋值,
那么此时可以把原始数据复制一份进行保存,所以解决方法如下:
1、对erp_apply_form表进行复制,生成erp_apply_form_copy表,通过这个A_copy中间表来完成数据的互换
具体sql实现:
UPDATE erp_apply_form SET form_value =(
SELECT form_value
FROM erp_apply_form_copy
WHERE approve_id = 25 AND form_title = '供方公司'
AND self_apply_id = erp_apply_form.self_apply_id
)
WHERE form_title = '需方公司' AND approve_id = 25
UPDATE erp_apply_form SET form_value =(
SELECT form_value
FROM erp_apply_form_copy
WHERE approve_id = 25 AND form_title = '需方公司'
AND self_apply_id = erp_apply_form.self_apply_id
)
WHERE form_title = '供方公司' AND approve_id = 25