小编典典

删除条件很少的所有重复主题

sql

我正在尝试使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。


阅读 202

收藏
2021-03-23

共1个答案

小编典典

在中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;

创建索引topics (object_id, title, topic_id)以使其快速运行。

2021-03-23