2013-10-10 59 views
0

我有一個帶有兩個字段的mysql表。 idrecipients。收件人字段包含電子郵件,以逗號分隔值(eg:[email protected],[email protected],[email protected])。該表包含30000行。如果存在,我想從所有行中刪除一個特定的電子郵件ID。如何刪除字段中的文本-Minql查詢

有可以是三個情況下,可能發生
1)[email protected],DEF @ gmail.com,GHI @ gmail.com
2)[email protected][email protected],fgh2gmail.com
3)DEF @ gmail.com,ABC @ gmail.com,[email protected]

的要求是,我想從所有的行刪除[email protected] 。 我知道如何附加一封電子郵件

UPDATE report_ SET recipients = CONCAT('[email protected]',recipients);

刪除電子郵件ID時,也應該刪除逗號。我如何使用Mysql查詢來做到這一點?

回答

1

要做到這一點,你可以照顧2例: '[email protected],' 和 'ABC @ gmail.com.com'

所以,如果數據庫名稱爲MYDB,如果你需要運行更新,考慮:

UPDATE MyDb 
SET recepients = REPLACE(REPLACE(recepients, ',[email protected]', ''), '[email protected],', '') 
+0

它處理我提到的所有三種情況??它處理逗號問題嗎? – vmb

+0

我需要的是一個更新查詢。不是選擇 – vmb

+0

是的,只有2個例子:當逗號在電子郵件之前或當它在之後。對於案例#2(逗號在之前和之後) - 您可以使用這些逗號中的任何一個來刪除電子郵件。你需要保留第二個逗號。 –

相關問題