我有一个结构如下的表
我想删除所有包含相同字段的重复记录,字段为 BUY_ITEM 和 ALSO_BUY ..
例如,在RULE_ID号码2和7上方的图片中, CD-ROM 和 MOUSE 均为fields
BUY_ITEM 和 BUY_ALSO 即可。
所以我想只保留RULE_ID
= 2 的第一条记录,并删除RULE_ID
= 7 的第二条记录
结果就像这样
我正在使用SELECT DISTINCT
来过滤重复的记录,这里是查询
select distinct BUY_ITEM, ALSO_BUY from result
得到了这样的结果
但我不知道将分组列(BUY_ITEM和ALSO_BUY)作为条件删除重复记录的查询。
你能告诉我怎么做吗?之前感谢
答案 0 :(得分:1)
在MySQL中,您可以在join
命令中使用delete
。因此,您可以汇总数据以获得所需内容:
delete t
from table t join
(select buy_item, also_buy, min(rule_id) as minid
from table t
group by buy_item, also_buy
having count(*) > 1
) ba
on t.buy_item = ba.buy_item and t.also_buy = ba.also_buy
where rule_id > minid;