MySql 按列分组并为它们分配一个唯一的 group_id
MySql group by columns and assign them a unique group_id
基本上,有一个从数据库中删除重复项的抽象任务,它通过它的 id 与其他几个 tables 链接...
我需要为 table 中的每个重复行分配一个唯一的 group_id 作为现有行的 max(id)。请帮忙
图中我的问题
https://i.stack.imgur.com/CVYG1.png
您可以先对实体进行分组(以查找组 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`
基本上,有一个从数据库中删除重复项的抽象任务,它通过它的 id 与其他几个 tables 链接... 我需要为 table 中的每个重复行分配一个唯一的 group_id 作为现有行的 max(id)。请帮忙
图中我的问题 https://i.stack.imgur.com/CVYG1.png
您可以先对实体进行分组(以查找组 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`