尝试删除重复条目

yuvru6vn  于 2022-10-22  发布在  Mysql
关注(0)|答案(1)|浏览(193)

我有一个大约30个字段的数据库。这是一个会员网站,因此人们加入并创建了一个个人资料,但是许多会员创建了几个个人资料,每次都使用他们的电子邮件,所以我需要删除所有已创建的重复个人资料,但保留最新的个人资料。
每个配置文件都有一个唯一的ID,因此我使用了下面的脚本,其中显示了最终用户多次使用电子邮件时创建的所有配置文件的列表。

  1. select min(id) as lastId, email
  2. from profiles
  3. where email in (
  4. select email
  5. from profiles
  6. group by email
  7. having count(*) > 1
  8. )
  9. group by email;

这个列表看起来很棒,它显示了他们在列表中创建的最古老的个人资料,所以当我到达这一点时,我非常高兴。然后,我使用每个配置文件旁边的复选框选择配置文件,并单击“删除”按钮,然后:

  1. # 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@gmail.com LIMIT 1' at line 1

我什么都试过了。我可以删除“正常”中的一个条目,但我需要选择列表中的所有配置文件并将其删除。

8fsztsew

8fsztsew1#

在MySQL/MariaDB中,必须使用多表DELETE语法。
https://dev.mysql.com/doc/refman/8.0/en/delete.html
https://mariadb.com/kb/en/delete/

  1. DELETE t1
  2. FROM profiles t1
  3. JOIN profiles t2 USING (email)
  4. WHERE t1.id > t2.id;

一、 e.“如果存在具有相同email但低于id的行,则删除该行”。

相关问题