@TKiTANO

Как удалить строки в которых в которых идет повторение?

Имее таблицу с такими данными в ней:
id | id2 | id3
1 28 1008
2 28 1009
3 13 1005
4 2 1001
5 28 1010
6 28 1008
7 28 1010
.....
Т.е. в данном случае нужно удалить id 6 и 7. А id 1 и 5 нужно оставить. Получается удалиться должны строки, которые были добавлены последними с id2 = 28 и повторяющимся id3.
Как такое можно сделать?
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ответы на вопрос 2
kawabanga
@kawabanga
если через mysql, то как то так, только обязательно проверяйте, что отдает такой запрос, так как я только набросал код.

delete from table i where (select count (id) from table o where i.id2=o.id2 and i.id3=o.id3)>1;


На будущее:
- именуйте имена столбцов понятно
- добавьте ключ на два поля уникальный.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Ну, то что id у одной записи меньше, чем у другой, не говорит о том, что эта запись была сделана раньше. А так задача несложная
DELETE `t1`.*
    FROM `table` AS `t1`
    LEFT JOIN `table` AS `t2` ON `t2`.`id` < `t1`.`id` 
        AND `t2`.`id2` = `t1`.`id2` AND `t2`.`id3` = `t1`.`id3`
    WHERE `t2`.`id` IS NOT NULL
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы