gpt4 book ai didi

php - MySQL 中删除按除 ID 之外的所有分组的重复行的最佳方法?

转载 作者:行者123 更新时间:2023-11-29 09:03:23 27 4
gpt4 key购买 nike

似乎不是重复的,因为这个问题是不同的。

我的表有 3 列:id、col2、col3。我正在使用此方法删除重复的行:

create table temp_table as
select * from my_table where 1 group by col2,col3;

drop table my_table;
rename table temp_table to my_table;

但是,my_table 实际上有很多列,而不仅仅是 3 列,在查询中列出来很痛苦。所以我想问是否有一种方法可以进行这样的查询:

create table temp_table as
select * from my_table where 1 group by * except id;

drop table my_table;
rename table temp_table to my_table;

有什么办法吗?

最佳答案

您可以执行子查询以确保您得到的结果是唯一的。此查询将为您提供重复项(保留具有较低 ID 的项):

SELECT id
FROM duplicates d1
WHERE EXISTS (
SELECT 1
FROM duplicates d2
WHERE d2.col2 = d1.col2
AND d2.col3 = d1.col3
AND d2.id < d1.id
)

将它们放入临时表中(或将它们加载到 PHP)并运行第二个查询来DELETE。 (在读取表格时无法修改表格)

执行WHERE NOT EXISTS来获取要保留的元素的ID(同样,保留ID最小的元素)。

关于php - MySQL 中删除按除 ID 之外的所有分组的重复行的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7869026/

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