2014-09-23 7 views
1

У меня есть несколько GMAIL адреса в моей таблицеMySQL удалить точки из адресов электронной почты

[email protected] 
[email protected] 
[email protected] 
[email protected] 

Мне нужно заменить адрес Gmail, которые содержат символ «» получить:

[email protected] 
[email protected] 
[email protected] 
[email protected] 

мой запрос не работает

UPDATE voters set email 
replace(substring(email, 1, LOCATE('@', email) -1), '.', '') 
WHERE email REGEXP '@googlemail.com|@gmail.com' 

пожалуйста, помогите, ТНХ!

ответ

1

Вы извлечения подстроки перед @ и замена точек, но вы не добавляете назад подстроку после @ после этого:

UPDATE voters 
SET email = CONCAT(replace(substring(email, 1, LOCATE('@', email) -1), '.', ''), 
        SUBSTRING(email, LOCATE('@', email))) 
WHERE email REGEXP '@googlemail.com|@gmail.com' 

DEMO

0

Вы можете использовать что-то подобное, как следующий запрос с использованием substring_index & substring:

UPDATE table1 
SET email = CONCAT (
     replace(substring_index(email, '@', 1), '.', '') 
     ,substring(email, instr(email, '@')) 
     ) 
WHERE substring_index(email, '@', -1) IN (
     'googlemail.com' 
     ,'gmail.com' 
     ); 

SQLFiddle

Смежные вопросы