+-------------------------+
| SKU  |  UPC  |   NAME   | INVID
+-------------------------+
| 001  |  111  |   NAME1  |  1
| 001  |  null |   NAME2  |  2
| 0-1  |  111  |   NAME3  |  3
| -01  |  111  |   NAME4  |  4
| 002  |  222  |   NAME5  |  5
| 002  |  null |   NAME6  |  6
| 003  |  333  |   NAME7  |  7
+-------------------------+
我想通过两个标准在这个表中找到重复的记录。首先是SKU,其次是UPC。在这种情况下,重复记录是 [1,2,3,4] 和 [5,6]。行 [1,2] 是重复的,因为 sku 编号匹配。行 [1,3,4] 是重复的,因为 UPC 编号匹配。第一个重复组应如下所示:
第 1 组*
+-------------------------+
| 001  |  111  |   NAME1  |  1
| 001  |  null |   NAME2  |  2
| 0-1  |  111  |   NAME3  |  3
| -01  |  111  |   NAME4  |  4
+-------------------------+
第二个重复组应如下所示:
组2*
+-------------------------+
| 002  |  222  |   NAME5  |  5
| 002  |  null |   NAME6  |  6
+-------------------------+
如何使用 mysql 查询找到这些组?如果我发现重复记录,我会在表中设置任何重复记录的 grouID* * *。
我试过了,但没有显示所有重复项。
select sku, upc
from inv
WHERE sku is not null 
GROUP BY sku, upc HAVING count(sku)  > 1 OR count(upc)  > 1
这是 SQL 模式:
http://sqlfiddle.com/#!2/4d760/2
此查询返回空结果。