我有一个包含以下字段的表:
id(唯一)
url(唯一)
标题
公司
站点id
现在,我需要删除标题、公司和站点id相同的行。一种方法是使用以下SQL和脚本(PHP):
选择标题、站点id、位置、id、计数(*)
来自乔布斯
按站点id、公司、标题、位置分组
有计数(*)>;1.
运行此查询后,我可以使用服务器端脚本删除重复项
但是,我想知道是否只有使用SQL查询才能做到这一点
一个非常简单的方法是在3列上添加一个UNIQUE索引。编写ALTER语句时,请包含IGNORE关键字。像这样:
更改忽略表作业
添加唯一索引idx_名称(站点id、标题、公司);
这将删除所有重复的行。作为一个额外的好处,将来的插入重复的将出错。和往常一样,在运行类似的操作之前,您可能需要进行备份