Как удалить все строки в группе, кроме самой новой? - PullRequest
0 голосов
/ 09 марта 2020

Скажем, у меня есть таблица, подобная этой:

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?

1 Ответ

0 голосов
/ 09 марта 2020
delete from mytable
where id not in 
(
  select max(id)
  from mytable
  group by application_id
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...