如何删除重复的行并使行保持较高的值?

时间:2017-05-21 14:37:47

标签: php mysql

我有一个包含4个关键字段的表格。 A1(主键),A2,A3,A4。

我想在A4较低的A3中删除副本。

实施例。 A3值G258 - G258 A4值1000 - 1500

删除A3 = G258且A4为1000(更低)的记录

我该怎么做?

1 个答案:

答案 0 :(得分:0)

delete t1 
from some_table t1
join some_table t2
  on  t2.a3 = t1.a3
  and t2.a4 > t1.a4;

演示:http://rextester.com/RERGD32491

这只会保留A4A3个值最高的行。 A3中具有相同值的两行在A4中具有相同的最高值是可能的。由于你没有在这种情况下指定做什么 - 两行都将被保留。