クエリを探しています。重複する値をすべて削除します。
Example Table:
1 ABC
2 BBB
3 DAC
4 ABC
5 AAA
6 ABC
output required
1 ABC
2 BBB
3 DAC
5 AAA
助けてくれてありがとう、私はグーグルで正確な解決策を見つけることができません。
重複した値の実際の操作を行いたい場合DELETE(最小の値を保持しながら)、複数のテーブル構文idを使用して実行できます。DELETE
DELETE a FROM tbl a
LEFT JOIN
(
SELECT MIN(id) AS id, name
FROM tbl
GROUP BY name
) b ON a.id = b.id AND a.name = b.name
WHERE b.id IS NULL
DELETEここで@fvuの回答を参照してください:https://stackoverflow.com/a/11249235/1166147
unique index重複を削除し、将来の重複を一度に防止するを作成できます(MySQL 5.1 以降):
ALTER IGNORE TABLE 'YOURTABLE'
ADD UNIQUE INDEX somefancynamefortheindex (Col1ID, Col2)
が重複を含むテーブルの名前であると仮定して、同じ構造のTab一時テーブルを作成します。Tab_TMPTab
-- assuming `Tab` has same schema
CREATE TABLE Tab_TMP (
id INT(2) PRIMARY KEY,
name VARCHAR(8)
);
Table_TMPすべてのTableエントリを入力します。
INSERT INTO Tab_TMP(id, name) SELECT id, name FROM Tab;
からエントリを削除しますTable。
DELETE FROM Tab;
を使用してTableエントリに挿入します。Table_TMPSELECT DISTINCT
INSERT INTO Tab(name) SELECT DISTINCT name FROM Tab_TMP;