2014-10-09 49 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