Php 筛选数据库并删除重复项

Php 筛选数据库并删除重复项,php,mysql,sql,Php,Mysql,Sql,我有一个Mysql数据库,有1200000张唱片,里面有著名艺术家的专辑。唯一的问题是,存在重复项,但唯一重复的字段不是主键,而是标题。在PHP中是否有一个简单的脚本来删除不必要的内容?如果存在另一行标题相同但id较低,则删除该行 delete from tablename t1 where exists (select * from tablename t2 where t2.title = t1.title and t2.id &l

我有一个Mysql数据库,有1200000张唱片,里面有著名艺术家的专辑。唯一的问题是,存在重复项,但唯一重复的字段不是主键,而是标题。在PHP中是否有一个简单的脚本来删除不必要的内容?

如果存在另一行标题相同但id较低,则删除该行

delete from tablename t1
where exists (select * from tablename t2
              where t2.title = t1.title
                and t2.id < t1.id)
如果存在标题相同但id较低的另一行,则删除该行

delete from tablename t1
where exists (select * from tablename t2
              where t2.title = t1.title
                and t2.id < t1.id)
试试这个

SELECT distinct tablename .*
  FROM tablename as tb1
  join tablename as tb2
 WHERE tb1.title = tb2.title
   and tb1.id < tb2.id
它可能会帮助您获取不重复的记录

DELETE tablename 
  FROM tablename as tb1
  join tablename as tb2
 WHERE tb1.title = tb2.title
   and tb1.id < tb2.id
用于删除重复记录

DELETE tablename 
  FROM tablename as tb1
  join tablename as tb2
 WHERE tb1.title = tb2.title
   and tb1.id < tb2.id
试试这个

SELECT distinct tablename .*
  FROM tablename as tb1
  join tablename as tb2
 WHERE tb1.title = tb2.title
   and tb1.id < tb2.id
它可能会帮助您获取不重复的记录

DELETE tablename 
  FROM tablename as tb1
  join tablename as tb2
 WHERE tb1.title = tb2.title
   and tb1.id < tb2.id
用于删除重复记录

DELETE tablename 
  FROM tablename as tb1
  join tablename as tb2
 WHERE tb1.title = tb2.title
   and tb1.id < tb2.id