在MySQL中删除重复的行

我有一个包含以下字段的表:

id (Unique)

url (Unique)

title

company

site_id

现在,我需要删除具有same的行title, company and site_id。一种方法是使用以下SQL以及脚本( ):

SELECT title, site_id, location, id, count( * ) 

FROM jobs

GROUP BY site_id, company, title, location

HAVING count( * ) >1

运行此查询后,我可以使用服务器端脚本删除重复项

但是,我想知道是否只能使用SQL查询来完成。

回答:

一种简单的方法是UNIQUE在3列上添加索引。在编写ALTER语句时,请包含IGNORE关键字。像这样:

ALTER IGNORE TABLE jobs

ADD UNIQUE INDEX idx_name (site_id, title, company);

这将删除所有重复的行。作为一项额外的好处,INSERTs重复的将来会出错。和往常一样,您可能需要在运行类似内容之前进行备份…

以上是 在MySQL中删除重复的行 的全部内容, 来源链接: utcz.com/qa/410282.html

回到顶部