合并不同的行只有一个

时间:2017-01-31 21:18:54

标签: mysql select

我有一张表:

GymMachine   UsedHours  Building Section
   M1          5            A 
   M2          6            B
   N1          3            A

过了一段时间后,有人注意到M1和N1引用了同一台机器(这种情况发生在其他机器上),现在我需要找到那些引用同一台机器的行,并且"合并"这些行只有一个。使用mysql,对于代表同一台机器的那些行,我需要添加它们各自的UsedHours并保留其中一行。有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

假设我们想将M1合并到N1并保留M1,假设GymMachine是独一无二的......

UPDATE machines
SET UsedHours = UsedHours + (SELECT UsedHours FROM machines WHERE GymMachine = 'N1')
WHERE GymMachine = 'M1';

可能有一种更优雅的方式,但子查询可以正常工作。

然后删除N1。

DELETE FROM machines WHERE GymMachine = 'N1';