Удаление дублирующихся строк (MySQL 5.7)

Вот мое решение: (newUrl - ваш новый URL-адрес, который вы хотите заменить текущим)

history.pushState({}, null, newUrl);
0
задан Natsu 1 March 2019 в 22:43
поделиться

1 ответ

Вы можете использовать left join с delete:

delete pl
    from pmd_listings pl left join
         (select pl2.friendly_url, pl2.www, pl2.listing_zip, min(id) as min_id
          from pmd_listings pl2
          group by pl2.friendly_url, pl2.www, pl2.listing_zip
         ) pl2
         on pl2.id = pl.id
    where pl2.id is null;

Подзапрос агрегации находит все минимальные идентификаторы для комбинаций трех столбцов. left join находит совпадения с этими идентификаторами, а where означает, что все несовпадающие строки, то есть все, кроме первой строки, удалены.

0
ответ дан Gordon Linoff 1 March 2019 в 22:43
поделиться
Другие вопросы по тегам:

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