我有一个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 ...
但是我不确定如何在此完成语法。
我该如何构造一个删除操作,以删除该结果集中未包含的所有内容?
答案 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;
在尝试对数据进行操作之前,请确保先复制表!