我有一个包含很多重复记录的表:
shop
ID tax_id
1 10
1 10
1 11
2 10
2 12
2 10
2 10
我想在不创建临时表的情况下删除所有重复记录。 更新查询后,该表应如下所示:
shop
ID tax_id
1 10
1 11
2 10
2 12
最佳答案
这是一个就地解决方案(但不是单行)
找出最大id:
select max(id) as maxid
from shop;
记住这个值。假设它等于 1000;
重新插入具有偏移量的唯一值:
insert into shop (id, tax_id)
select distinct id + 1000, tax_id
from shop;
丢弃旧值:
delete from shop
where id <= 1000;
恢复正常的 ids:
update shop
set id = id - 1000;
利润!
关于php - 删除重复记录而不创建临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8590010/