我有3列的表格:
ID, name, role
有些名称是重复的,但它们都有唯一的ID,如何在表格中删除所有具有重复名称的行(不是全部,每个都留一个)?
答案 0 :(得分:2)
按name
分组并选择最低的唯一id
。删除不在该列表中的所有记录
delete from your_table
where id not in
(
select min(id)
from your_table
group by name
)
如果你使用MySQL,你需要另一个子查询,因为MySQL不允许你从你选择的同一个表中删除:
delete from your_table
where id not in
(
select * from
(
select min(id)
from your_table
group by name
) tmp_tbl
)