基本上,有一个从db中删除重复项的抽象任务,它通过它与其他几个表的id链接... 我需要为表中的每个重复行分配一个唯一的group_id作为现有行的max(id)。请帮忙
我的问题在图片中 https://i.stack.imgur.com/CVYG1.png
答案 0 :(得分:0)
您可以先对实体进行分组(以查找组ID),然后更新group_id
个实体。
示例:
UPDATE `t`,
(SELECT `name`, `surname`, MAX(`id`) AS `group_id` FROM `t`
WHERE 1 GROUP BY CONCAT(`name`, `surname`)) AS `t1`
SET `t`.`group_id` = `t1`.`group_id`
WHERE `t`.`name` = `t1`.`name` AND `t`.`surname` = `t1`.`surname`