gpt4 book ai didi

sql - MySql:根据列重复值删除表行?

转载 作者:可可西里 更新时间:2023-11-01 06:36:32 25 4
gpt4 key购买 nike

我有一个包含年份列的表,该列不应有重复值。所以我最终得到了一个只有一个 2007 年记录的表格。

那么我怎样才能删除那些具有重复年份值的行呢?

谢谢

最佳答案

我认为您可以简单地尝试使用 IGNORE 添加一个 UNIQUE INDEX:

ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`column`);

MySQL 应该响应如下内容:

Query OK, 4524 rows affected (1.09 sec)
Records: 4524 Duplicates: 9342 Warnings: 0

当然,您将由 MySQL 决定删除哪些行。

编辑:

这适用于任意多的列:

ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`col1`, `col2`, `col3`);

CREATE INDEX 上查看 MySQL 的文档.一个常见的陷阱(至少我遇到过一次)是忘记 NULL = NULL 不是真的(但是 NULL),因此 {42, NULL} 和 { 42, NULL} 允许用于两列上的 UNIQUE 索引。

关于sql - MySql:根据列重复值删除表行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3861919/

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