3

重複の可能性:
mysql のテーブルから重複行を削除する方法

悪夢になりつつある簡単なリクエストがあります。

ID(int) と Value(varchar(100)) の 2 つの列を持つテーブル 'MyTableA' があります。

テーブルには次のような値があります。

ID|値
1|りんご
2|アップル
3|りんご

値が重複している場合は常に、最初の ID 行を保持し、残りの行を削除したいと考えています。したがって、上記の例では、ID 2 と 3 の行を削除したいと考えています。

これは単純だと思いましたが、節を持つSQLに慣れているためかもしれません。

ありがとう!

4

2 に答える 2

5

試す...

DELETE t FROM `dbtable` t
  JOIN `dbtable` t2 ON t.`Value` = t2.`Value`
WHERE t.`ID` > t2.`ID`
于 2012-11-17T19:23:11.507 に答える
0

テーブルをサブクエリと結合することで削除できます(サブクエリは値ごとに最小IDを取得します

DELETE a FROM tableName a
        LEFT JOIN
        (
          SELECT Value, MIN(ID) minID
          FROM tableName
          GROUP BY Value
        ) b ON a.ID = b.minID
WHERE  b.minID IS NULL
于 2012-11-17T21:46:13.847 に答える