我有一个包含
等项目的表项name
------
alpha
alpha
beta
charlie
charlie
在这种情况下,如何删除重复的行,但应保留一条记录。上表没有任何主键。
答案 0 :(得分:3)
试试这个
DELETE FROM item WHERE GREATEST(0,@num := IF(NAME = @NAME, @num + 1, 0),LEAST(0, LENGTH(@NAME := NAME)))>0
答案 1 :(得分:1)
重新创建该表:
RENAME TABLE `testTable` TO `testTable2`;
CREATE TABLE `testTable`
SELECT DISTINCT `name` FROM `testTable2`;
或在您的字段上添加 UNIQUE INDEX 。
ALTER IGNORE TABLE `tableName`
ADD UNIQUE INDEX (`name`)