我想删除表中setid列中具有唯一值的所有行。我可以这样选择:

select * from imagesets as a
where (select count(*) from imagesets as b where a.setid = b.setid) = 1

删除它们的最佳方法是什么?有没有更好的方法来选择他们?

最佳答案

我认为以下内容在MySQL中可以工作:

delete i from imagesets i join
            (select setid, count(*) as cnt
             from imagesets
             group by setid
             having count(*) = 1
            ) set1
            on i.setid = set1.setid;

关于mysql - 您应该如何删除具有唯一值的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20338875/

10-11 01:28