我正在尝试使sql删除所有重复的标题但是必须删除具有以下条件的重复项:
>必须仅删除具有相同object_id的重复项
>必须只保留最新的记录(最大的topic_id)(topic_id是每个主题AI的唯一ID)
到目前为止我已经完成了(用select测试…)
SELECT topic_id,object_id,title,url,date
FROM topics GROUP BY title
HAVING ( COUNT(title) > 1)
ORDER BY topic_id DESC
但不符合条件.
我正在使用mysql.
解决方法:
在MySQL中,您无法在子查询中将目标表指定为DML操作(除非您将其嵌套多个深度,但在这种情况下,您将无法获得可靠的结果,并且无法使用相关子查询).
使用JOIN:
DELETE td
FROM topics td
JOIN topics ti
ON ti.object_id = td.object_id
AND ti.title = td.title
AND ti.topic_id > td.topic_id;
创建主题索引(object_id,title,topic_id),以便快速工作.