根据不同选择删除

时间:2018-09-26 22:37:07

标签: mysql sql

我有一个mysql查询,返回了很多不同但正确的结果

select distinct page_id, display_id
  from display_to_page;

但是现在我正在尝试删除该结果集中未包含的所有内容(删除重复项),但是我有点卡住了。

我知道我可以做类似的事情:

delete from display_to_page dp
(select distinct page_id, display_id
    from display_to_page) dp2 ...

但是我不确定如何在此完成语法。

我该如何构造一个删除操作,以删除该结果集中未包含的所有内容?

1 个答案:

答案 0 :(得分:1)

如果表中只有两列,那么最简单的方法可能是截断/重新加载:

create temporary table temp_pd as
    select distinct page_id, display_id
    from display_to_page;

truncate table display_to_page;

insert into display_to_page (page_id, display_id)
    select page_id, display_id
    from temp_pd;

在尝试对数据进行操作之前,请确保先复制表!