如何删除组中除最新行以外的所有行?

问题描述 投票:0回答:1

说,我有一张与此类似的表:

CREATE TABLE `mytable` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `application_id` int(11) NOT NULL,
  `company_name` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB

我想使application_id唯一,但是表中已经有一些重复项。如何按application_id分组并删除每组中的所有记录,仅留下具有最​​高id的记录?

mysql sql-delete delete-row unique-constraint
1个回答
0
投票
delete from mytable
where id not in 
(
  select max(id)
  from mytable
  group by application_id
)
© www.soinside.com 2019 - 2024. All rights reserved.