2016-07-25 6 views
0

Ich habe eine Tabelle in mysql -mytable.E-Mail-ID aus einem Feld mit mehreren Wörtern in Mysql extrahieren

Spaltenname: ResidenceAddress1

Es hat Werte wie folgt aus:

[email protected],Rourkela 
[email protected] 2nd street,7 hils 
2nd street, [email protected] 

ich auf diese Weise versucht haben:

select (case when substring_index(Residence_Address1, ' ', 1) like '%@%' 
     then substring_index(Residence_Address1, ' ', 1) 
     else substring_index(Residence_Address1, ' ', -1) 
    end) as email, Residence_Address1 
from mytable 
where Residence_Address1 like '%gmail%' and Email_Personal1="" 

Aber sein gibt mir nicht nur E-Mail-IDs. Wie bekomme ich nur E-Mail-IDs aus mehreren Wörtern?

+0

was meinst du E-Mail-ID? –

+0

bedeutet E-Mail-Adresse. –

Antwort

1

Für Ihre Beispieldaten, hier eine Lösung:

select 
    concat(trim(substring_index(substring_index(ResidenceAddress1, '@', '1'), ' ', -1)), '@gmail.com') as mail 
    ,ResidenceAddress1 
from mytable 

Diese Antwort auf Ihrer E-Mail-basiert ist alles gmail.com und Ihr Separator ist der Raum.

Edited:

substring_index(ResidenceAddress1, '@', '1') erhalten Sie dieses:

sap3200 
sap3212 
2nd street, sap3212 

dann

substring_index('sap3200', ' ', -1) => sap3200
substring_index('sap3212', ' ', -1) => sap3212
substring_index('2nd street, sap3212', ' ', -1) => sap3212

Demo Here

+0

Vielen Dank. Aber ich bin etwas verwirrt mit 1 und -1 in substring_index. Kannst du es mir bitte erklären? –

+0

Vielen Dank JPG. –

+0

Aber ich bin mit dem Problem konfrontiert, den Datensatz zu aktualisieren. –

Verwandte Themen