Mysql 如果replace语句后重复,则删除行

Mysql 如果replace语句后重复,则删除行,mysql,duplicate-removal,Mysql,Duplicate Removal,我需要能够删除电子邮件中的空格,我已经做了修剪,所以我只需要删除实际字符串中的空格。 我找到了这个代码 SELECT email,TRIM(REPLACE(REPLACE(REPLACE(email,'\t',''),'\n',''),'\r','')) 问题是电子邮件是主键,当我运行此查询时,它会出错。 错误代码:1062 所以我需要能够删除我更新的行,如果它是一个重复的条目 我现在会继续寻找答案,但任何帮助都将不胜感激。检查下面的想法是否有帮助 创建与原始表具有相同结构的新空表 创建与原始

我需要能够删除电子邮件中的空格,我已经做了修剪,所以我只需要删除实际字符串中的空格。 我找到了这个代码

SELECT email,TRIM(REPLACE(REPLACE(REPLACE(email,'\t',''),'\n',''),'\r',''))
问题是电子邮件是主键,当我运行此查询时,它会出错。 错误代码:1062 所以我需要能够删除我更新的行,如果它是一个重复的条目


我现在会继续寻找答案,但任何帮助都将不胜感激。

检查下面的想法是否有帮助

  • 创建与原始表具有相同结构的新空表
  • 创建与原始表格类似的表格临时表格

  • 使用insert ignore将包含新电子邮件的原始表格中的所有记录插入TEMP表格,以便忽略重复的电子邮件
  • 将忽略插入临时表格中,从原始表格中选择ID、字段1、字段2、修剪(替换(替换(替换(替换(电子邮件“\t',”)、“\n',”)、“\r',”),字段

  • 备份您的_原始_表,然后将临时_表重命名为您的_原始_表

  • 我不认为我能做到这一点,因为这是公司,我要复制的表包含690万条记录,因此复制会花费时间并降低服务器速度,这将是不好的,因为有其他部门从该表中进行拉取和计数。我不确定这是否会改变什么,但我正在编辑/更新的电子邮件也在该数据库中,但它们在特定列中标记为4,以使它们与其他邮件不同。这会改变这个想法吗?