3

MYSQL で重複レコードを削除し、1 つのレコードをランダムに保持するにはどうすればよいですか?

4

1 に答える 1

6

ALTER TABLE一意のインデックスを追加するために使用しIGNORE、エラーが発生しないようにオプションを指定します。

ALTER IGNORE TABLE mytable 
ADD UNIQUE INDEX (products_id, categories_id);

アップデート:

選択をランダムにするには、古いテーブルと同じスキーマで新しいテーブルを作成しますが、これらの列には一意のキーを使用します。次に、次のようにします。

INSERT IGNORE INTO newtable
SELECT * from oldtable
ORDER BY RANDOM();

ランダムな順序での各複製の最初のものが新しいテーブルに挿入され、残りは IGNORE オプションにより無視されます。

于 2012-10-20T08:17:12.157 に答える