2014-10-09 44 views
0

我需要删除电子邮件中的空格,因为我已经完成了TRIM,因此我只需要删除实际字符串中的空格。 我发现这个代码,要做到这一点如果在替换语句后重复删除行

SELECT email,TRIM(REPLACE(REPLACE(REPLACE(email,'\t',''),'\n',''),'\r','')) 

的问题是,电子邮件是一个主键,当我运行此查询它的错误。 错误代码:1062 所以我需要能够删除我更新的行,如果它是一个重复的条目。

我会继续研究现在的答案,但任何帮助将不胜感激。

回答

0

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

  1. 创建具有相同结构的新的空表用像YOUR_ORIGINAL_TABLE原始

CREATE表TEMP_TABLE

  • 使用插入忽略插入所有来自YOUR_ORIGINAL_TABLE的记录都会以新电子邮件发送到TEMP_TABLE,以便重复发送的电子邮件将被忽略。
  • INSERT IGNORE成TEMP_TABLE SELECT ID,FIELD_1,FIELD_2,TRIM(REPLACE(REPLACE(REPLACE(电子邮件, '\吨', ''), '\ n', ''),'\ r ”, '')),FIELD_N FROM YOUR_ORIGINAL_TABLE

  • 备份YOUR_ORIGINAL_TABLE然后重命名TEMP_TABLE到YOUR_ORIGINAL_TABLE
  • +0

    我不认为我将能够做到这一点因为这是我将复制的公司和表格包含6.9百万条记录,所以复制将会持续ime,并放慢服务器的速度,因为还有其他部门正在从该表中抽取和计数。我不确定这是否会改变任何内容,但是我正在编辑/更新的电子邮件也位于此数据库中,但它们在特定列中标有4以使其与其余部分不同。这会改变这个想法吗? – 2014-10-09 12:41:33