gpt4 book ai didi

mysql - 如何对一列或多列相等的行进行分组?

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:41 26 4
gpt4 key购买 nike

假设我有一个包含以下列的产品数据库:

name
isbn
ean
upc
sku

如果这些列中的任何一个匹配,我想将产品组合在一起。我该怎么做?

我尝试使用 GROUP BY 子句,但显然这意味着 所有 列都必须匹配,而不仅仅是一个列。

换句话说,GROUP BY name, isbn, ean, upc, sku 仅当所有列都相等时才将产品组合在一起,我想如果任何列相等,则将它们组合在一起。

示例:

id  |  name   |     isbn     |  ean  |    upc     | sku
0 banana1 null null 0000000000 1234
1 banana2 6789 null 0000000000 1234
2 banana3 6789 null 1111111111 null
3 banana4 null null 1111111111 null

所有这些行都应该组合在一起,因为它们至少有一个相互匹配的列。

最佳答案

没有。 GROUP BY 要求分组表达式中的所有元素在该组中的行之间是相同的。我能想到的最好的是:

SELECT
*
FROM
table
WHERE
name = isbn
OR name = ean
OR name = upc
OR name = sku
OR isbn = ean
OR isbn = upc
OR isbn = sku
OR ean = upc
OR ean = sku
OR upc = sku

缺点,如您所见,这是非常丑陋的,并且在添加新列时不能很好地扩展。如果它是一次性脚本,我只会使用它——例如,识别数据损坏。

关于mysql - 如何对一列或多列相等的行进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21005826/

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