首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从表中删除重复记录,留下一份副本

从表中删除重复记录,留下一份副本
EN

Database Administration用户
提问于 2015-06-11 08:08:56
回答 1查看 1.1K关注 0票数 2

我从我的一位同事那里继承了一个MySQL表,我需要一些建议。

该表的结构如下:

代码语言:javascript
复制
| PHONE_NO   | ACC_NO | GET_MAIL | DATETIME_CRE         | INT_ACC | MAIL |
| 0113313313 | 000001 |   YES    | 2003-01-01 19:00:00  | 9000001 | N/A  |

没有主键,因为表不是用主键创建的。我不能将该表重新创建为:

  1. 要完成这项工作需要花费很长的时间(超过200万条记录和计数)
  2. 这是一个mission critical表,这意味着删除它将导致我的客户在这段时间内损失资金。

我需要能够使用查询从表中删除重复的行,而不需要插入主键。从这个意义上说,“复制”是指该行中的所有列都与另一行相同。

编辑这是show create table查询的结果,按yper多维数据集的要求进行;

代码语言:javascript
复制
CREATE TABLE `callerQue` (
  `PHONE_NO` varchar(30) DEFAULT NULL,
  `ACC_NUMBER` varchar(40) DEFAULT NULL,
  `GET_MAIL` varchar(6) DEFAULT NULL,
  `DATETIME_CRE` datetime DEFAULT NULL,
  `INT_ACC` varchar(40) DEFAULT NULL,
  `MAIL` varchar(50) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1'
EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-06-12 06:12:18

不确定这在mysql中是否有效,因为我是MSSQL,但是您可以添加一个标识列-> auto_increment。这将使所有行都是唯一的。然后,您可以根据重复的记录进行分组,例如选择最高的ID。这样,您将只删除一行。重复此操作,直到不再重复。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/103770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档