我想根据行号(没有主键)删除一些重复的行(id是duplicate),以便以后可以将id列作为主键。
我当前的查询返回了要删除的正确行:
SELECT *
FROM table_name
WHERE @row_number:=@row_number NOT IN (
SELECT * FROM (
SELECT MIN(@row_number:=@row_number)
FROM table_name
GROUP BY id
) x
);
但是当我尝试使用下面的查询删除它们时,什么也没有发生。
DELETE
FROM table_name
WHERE @row_number:=@row_number NOT IN (
SELECT * FROM (
SELECT MIN(@row_number:=@row_number)
FROM table_name
GROUP BY id
) x
);
知道我做错什么了吗?非常感谢您的帮助!
1条答案
按热度按时间kwvwclae1#
您可以使用此设置主键并删除所有重复的ID:
解决方案二: