5

次のようなアイテムを含むテーブルアイテムがあります

name
------
alpha
alpha 
beta
charlie
charlie

この場合、重複行を削除する方法はありますが、1 つのレコードを残す必要があります。上のテーブルには主キーがありません。

4

2 に答える 2

3

これを試して

DELETE FROM item WHERE GREATEST(0,@num := IF(NAME = @NAME, @num + 1, 0),LEAST(0, LENGTH(@NAME := NAME)))>0
于 2013-01-16T11:57:13.950 に答える
1

そのテーブルを再作成します。

RENAME TABLE `testTable` TO `testTable2`;

CREATE TABLE `testTable` 
SELECT DISTINCT `name` FROM `testTable2`;

または、フィールドにUNIQUE INDEXを追加します。

ALTER IGNORE TABLE `tableName` 
    ADD UNIQUE INDEX (`name`)
于 2013-01-16T12:00:06.360 に答える