gpt4 book ai didi

mysql - 删除没有ID的重复值

转载 作者:行者123 更新时间:2023-11-29 07:33:47 25 4
gpt4 key购买 nike

我有一个这样的表:

   uuid | username | first_seen | last_seen | score

之前,该表使用升序的“player_id”列的主键。我删除了这个player_id,因为我不再需要它。我想将“uuid”作为主键,但有很多重复项。我想从表中删除所有这些重复项,但保留第一个(根据行号,保留第一行)。

我该怎么做?我到处搜索过,但它们都显示了如果您有行 ID 列如何执行此操作...

最佳答案

我强烈提倡使用自动递增的整数主键。所以,我鼓励你回去。这些很有用,有几个原因,例如:

  • 它们告诉您行的插入顺序。
  • 它们对于主键来说更有效。
  • 由于主键在 MySQL 中是聚集的,因此它们总是位于末尾。

但是,您不必遵循该建议。我的建议是将数据插入到新表中,然后重新加载到所需的表中:

create temporary table tt as 
select t.*
from tt
group by tt.uuid;

truncate table t;

alter table t add constraint pk_uuid primary key (uuid);

insert into t
select * from tt;

注意:我正在使用 MySQL 的一项(错误)功能,该功能允许您对一列进行分组,同时拉出不在分组依据中的列。我不喜欢这个扩展,但是您没有指定如何选择您想要的特定行。这将为匹配行中的其他列提供值。还有其他方法可以为每个 uuid 获取一行。

关于mysql - 删除没有ID的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31637462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com