gpt4 book ai didi

php - 查找同一列数据的重复项

转载 作者:行者123 更新时间:2023-11-30 01:35:39 26 4
gpt4 key购买 nike

我发现一个查询可以获取所有重复项并按列名称对它们进行分组,但我需要在其自己的行上显示每条记录,并按列名称分组...

我怀疑的是,具有相同设计列的多个记录已上传,我需要能够比较每一行,以便确定哪些记录处于事件状态或不处于事件状态。

以下查询似乎可以工作,但每次我尝试使用它时都会使 mysql 崩溃:

SELECT *
FROM 2009_product_catalog
WHERE sku IN (
SELECT sku
FROM 2009_product_catalog
GROUP BY sku
HAVING count(sku) > 1
)
ORDER BY sku

我需要显示所有记录,而不仅仅是可能重复的记录。原因是,我需要能够比较其余的列,这样我才能知道需要删除哪些重复项。

最佳答案

您的查询在逻辑上是正确的。然而,MySQL 在使用子查询优化 in 时存在一些问题。试试这个版本:

SELECT pc.*
FROM 2009_product_catalog pc join
(SELECT sku
FROM 2009_product_catalog
GROUP BY sku
HAVING count(sku) > 1
) pcsum
on pcsum.sku = pc.sku
ORDER BY sku;

如果仍然不起作用,请确保您在 2009_product_catalog(sku, pcid) 上有一个索引(其中 pcid 是表格。然后试试这个:

select pc.*
FROM 2009_product_catalog pc
where exists (select 1
from 2009_product_catalog pc2
where pc2.sku = pc.sku and pc2.pcid <> pc.pcid
)

关于php - 查找同一列数据的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929321/

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