DELETE FROM tusers WHERE (code,name) in(SELECT code,name FROM tusers GROUP BY code,name HAVING COUNT(*) > 1)
为什么这样写不行?这个该怎么写?
DELETE FROM tusers WHERE (code,name) in(SELECT code,name FROM tusers GROUP BY code,name HAVING COUNT(*) > 1)
为什么这样写不行?这个该怎么写?
--针对像你这样主键自增长不相同,其他字段数据都相同的情况适用
Delete from [tusers] where id not in
(
SELECT MAX(id) --max(id) 也可以改成:min(id)
FROM [tusers]
GROUP BY code,name --需要剔除那几个用于判断重复的字段,则将它们放在group by语句之后
)
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
3 回答2k 阅读
为什么这样写不行
选择出了所有重复的
code,name
,正确重复项全都删了,没留下最后一个,所以错误
提示:
select min(id)
选出要留下的最后一个,not in
删掉其他的。