好的,我知道这听起来可能搞砸了,但是 mysql 昨天某个时候通过一种意想不到的遏制我的方式,这是我以前从未遇到过的。
所以我们有一个名为employees 的数据库表,在该表中你有类似的记录
Russell
Smith
Sam
但突然间我有了
Russell
Russell
Smith
Smith
Smith
Sam
Sam
Sam
如果有人知道如何解决这个问题,下载完整的表格并手动修复它并重新上传会很棒
好的,我知道这听起来可能搞砸了,但是 mysql 昨天某个时候通过一种意想不到的遏制我的方式,这是我以前从未遇到过的。
所以我们有一个名为employees 的数据库表,在该表中你有类似的记录
Russell
Smith
Sam
但突然间我有了
Russell
Russell
Smith
Smith
Smith
Sam
Sam
Sam
如果有人知道如何解决这个问题,下载完整的表格并手动修复它并重新上传会很棒
如果您的表有一个id
列,并且您只想保留最低的记录,id
您可以这样做
delete from employees
where id not in
(
select * from
(
select min(id)
from employees
group by name
) x
)
我的建议:
(1)新建临时表为:
create temporary table xxx as
select distinct * from employees
(2) 截断原表
truncate table employees
(3) 重新插入记录
insert into employees
select * from xxx
通过截断表,您将保留与其相关的几乎所有信息——安全性、触发器、约束。一个问题可能是自动递增的主键。如果您有其中一个,这可能不起作用(但话又说回来,如果有主键,您将无法复制记录)。