クエリを探しています。重複する値をすべて削除します。
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_TMP
Tab
-- 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_TMP
SELECT DISTINCT
INSERT INTO Tab(name) SELECT DISTINCT name FROM Tab_TMP;