求SQL语句

腾宇传奇 2008-02-14 11:33:08
怎样删除记录中相同的记录但是要保留记录的id,
这个id是自动生成的。例如:
t表
id name
1  张三 
2  李四
3  王五
4  张三
表中有这四条记录 要删除相同的记录
结果是:
id name
1  张三 
2  李四
3  王五

这种效果
考虑很长时间,没有效果,希望大家多多指点!
...全文
75 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
じоνё靁〃 2008-04-09
  • 打赏
  • 举报
回复
update t set name =''
where name in (select name from t group by name having count(name) > 1) and
id not in (select min(id) from t group by name)
腾宇传奇 2008-02-16
  • 打赏
  • 举报
回复
多谢各位的指点
一楼的语句在SQL2005环境中执行有错误啊
四楼的朋友给了我灵感,我现在 努力ing
liuyann 2008-02-15
  • 打赏
  • 举报
回复
update t k
set name=null
where id>(select min(id) from t where name=k.name)
腾宇传奇 2008-02-15
  • 打赏
  • 举报
回复
多谢liuyann的关注,但语句刚刚调试过,还是有问题啊,
显示
消息 102,级别 15,状态 1,第 1 行 'k' 附近有语法错误。
我尝试了

update t
set name=null
where id>(select min(id) from t k where name=k.name)

功能不对,可能还需要分组。
懒得去死 2008-02-15
  • 打赏
  • 举报
回复
看这个:

http://blog.chinaunix.net/u/29134/showart_375303.html
tim_spac 2008-02-15
  • 打赏
  • 举报
回复
支持:
update t k
set name=null
where id>(select min(id) from t where name=k.name)
liuyann 2008-02-14
  • 打赏
  • 举报
回复
update t k
set name=null
where id>(select min(id) from t where name=k.name)

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧