MYSql 通过存储过程删除重复数据(只保留一条)

zhwkingsun 2009-05-27 04:06:03
CREATE TABLE `contact_group` (
`CONTACT_GROUP_ID` int(9) NOT NULL AUTO_INCREMENT,
`USER_ID` int(9) DEFAULT NULL,
`CONTACT_ID` int(9) DEFAULT NULL,
`TYPE_ID` int(9) DEFAULT NULL,
`FRIEND_ID` int(9) DEFAULT NULL,
`FRIEND_NAME` varchar(128) DEFAULT NULL,
`NAME_CHAR` char(1) DEFAULT NULL,
PRIMARY KEY (`CONTACT_GROUP_ID`),
KEY `idx_contact_group_user_type` (`USER_ID`,`TYPE_ID`),
KEY `idx_contact_group_contact_id` (`CONTACT_ID`),
KEY `idx_contact_group_mobile` (`MOBILE_NUMBER`)
) ENGINE=InnoDB AUTO_INCREMENT=434 DEFAULT CHARSET=utf8;

查询contact_group里,所有的user_id,friend_id,type_id完全相同的数据,删除多余的,保留一条。
CONTACT_GROUP_ID 和其他表关联,不能考虑建临时表,复制数据的方法。
要求用存储过程实现需求。
小弟学别的语言的,对SQL语言不是很了解,谢谢各位大哥大姐们给出具体怎么实现过程,
谢谢了!!







...全文
170 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhwkingsun 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwwb 的回复:]
所有的user_id,friend_id,type_id完全相同的数据,删除多余的,保留一条。:什么标准,CONTACT_GROUP_ID 最小?
[/Quote]

条件任意,最大,最小都可以!



[Quote=引用 1 楼 ACMAIN_CHM 的回复:]
另外你提供的create table 语句中,(`MOBILE_NUMBER`) 这一列并不存在,会报错的。
[/Quote]

脚本太多我删掉了点
zhwkingsun 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ACMAIN_CHM 的回复:]
下面语句保留 CONTACT_GROUP_ID 最小的一条。

SQL codedeleteafromcontact_group a ,contact_group bwherea.user_id=b.user_idanda.friend_id=b.friend_idanda.type_id=b.type_idanda.CONTACT_GROUP_ID>b.CONTACT_GROUP_ID


[/Quote]
这里的数据量很大,用这条SQL有可能会把数据库执行崩溃!-
ACMAIN_CHM 2009-05-27
  • 打赏
  • 举报
回复

另外你提供的create table 语句中,(`MOBILE_NUMBER`) 这一列并不存在,会报错的。


当您的问题得到解答后请及时结贴.
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html

ACMAIN_CHM 2009-05-27
  • 打赏
  • 举报
回复

下面语句保留 CONTACT_GROUP_ID 最小的一条。

delete a from contact_group a ,contact_group b 
where a.user_id=b.user_id
and a.friend_id=b.friend_id
and a.type_id=b.type_id
and a.CONTACT_GROUP_ID>b.CONTACT_GROUP_ID


wwwwb 2009-05-27
  • 打赏
  • 举报
回复
所有的user_id,friend_id,type_id完全相同的数据,删除多余的,保留一条。:什么标准,CONTACT_GROUP_ID 最小?

56,678

社区成员

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

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