0

ID 番号を除いて、MySQL データベースに重複している行がいくつかあります。

たとえば、これを 2 つの行にするとします。

ID   | wordlist | category
845  | abashed  | confused
1800 | abashed  | confused

それらをすべて見つけて、1つだけ残したいです。

これを行うために SQL を使用できますか、それとも何らかのプログラムを作成する必要がありますか?

明確にするために、単語リストセクションで重複を取得したいだけです。

4

2 に答える 2

1

DELETEこれは、ステートメントの外部結合で行うことができます。

DELETE a FROM tbl a
LEFT JOIN
(
    SELECT MIN(id) AS id
    FROM tbl
    GROUP BY wordlist
) b ON a.id = b.id
WHERE a.category = '<category here>' AND b.id IS NULL

これにより、特定のカテゴリのみの重複 (列内) が排除されwordlist、最も低いカテゴリが保持されますid

于 2012-07-28T17:10:06.350 に答える
0
ALTER IGNORE TABLE your_table ADD UNIQUE INDEX idx_wordlist (wordlist );
于 2012-07-28T16:42:53.140 に答える