2

クエリを探しています。重複する値をすべて削除します。

Example Table:

1 ABC
2 BBB
3 DAC
4 ABC
5 AAA
6 ABC

output required

1 ABC
2 BBB
3 DAC
5 AAA

助けてくれてありがとう、私はグーグルで正確な解決策を見つけることができません。

4

4 に答える 4

6

重複した値の実際の操作を行いたい場合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

于 2012-07-15T23:59:43.693 に答える
2

ここで@fvuの回答を参照してください:https://stackoverflow.com/a/11249235/1166147

unique index重複を削除し、将来の重複を一度に防止するを作成できます(MySQL 5.1 以降):

ALTER IGNORE TABLE 'YOURTABLE' 
ADD UNIQUE INDEX somefancynamefortheindex (Col1ID, Col2)
于 2012-07-15T23:59:03.800 に答える
0

が重複を含むテーブルの名前であると仮定して、同じ構造の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;
于 2012-07-15T23:59:15.653 に答える