5

我有一个包含以下项目的表格项目

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

在这种情况下,我将如何删除重复的行但应该保留一条记录。上表没有任何主键。

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`;

在您的字段上添加唯一索引。

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