0

購入した製品ごとに体系的に選択された「シリアル番号」を保存するために使用するテーブルがあります...

問題は、重複した「シリアル番号」が含まれていると思われる CSV がアップロードされたことです。つまり、アプリケーションが行を変更しようとすると、正しい行が変更されない可能性があります。

データベースにクエリを実行し、列の 2 倍であるすべての行を取得できる必要がありserial_numberます。次のようになります。

ID, serial_number, meta1, meta2, meta3
3, 123456, 0, 2, 4
55, 123456, 0, 0, 0
6, 345678, 0, 1, 2
99, 345678, 0, 1, 2

ご覧のとおり、元の行と複製された行の両方、およびそのすべての列のデータを表示できる必要があります...これは、それらを比較して、現在矛盾しているデータを特定できるようにするためです。

4

2 に答える 2

1
SELECT *
FROM
  yourtable
WHERE
  serial_number IN (SELECT serial_number
                    FROM yourtable
                    GROUP BY serial_number
                    HAVING COUNT(*)>1)
ORDER BY
  serial_number, id
于 2013-07-23T22:24:18.997 に答える