2014-11-11 2 views
0

Я использую MySQL в системе есть таблица под названием Чаде, который имеет электронные письмаНужна простой способ извлечения сообщения электронной почты из колонок

но сообщения электронной почты в одной строке через запятой

Пример

строки 1

dom @ uc.org, dorym @ uc.org, dug @ uc.org, dud @ uc.org, ebbj @ ucc.org, eeryk @ ucc.org, flor @ uc.org, feyl @ ucc .org, frht @ ucc.org, fyb @ uc.org, garc @ ucc.org, lesg @ ucc.org, edeb @ sobal.net, mllj @ uc.org

строка 2

fdfdflor @ ucc.org, фэйл @ uc.org, freht @ ucc.org, FYB @ uc.org, gafgfrc @ ucc.org, legfgfsg @ uc.org, edrtreb @ sal.net, [email protected]

Я очистил и извлек большую часть писем с помощью sql, метод, который я использовал, заключался в том, чтобы каждый раз создавать новую таблицу и вставлять данные в эту таблицу, удаляя первое электронное письмо из предыдущей таблицы i создали до этого.

create table chad 
select right(`Email`, Length(Email) - Length(substring_index(Email,',',1))-1) Email from chac; 

insert into ch(Email) 
select distinct Email from chac where Email not like '%,%'; 

delete c.* from Chac c JOIN CH ON C.email = CH.Email; 

insert into ch(Email) 
select distinct substring_index(Email,',',1) Email from chac; 

Техника, которую я использовал, была очень трудоемкой, есть ли разумный способ извлечения электронных писем. или какое-то программное обеспечение, которое может это сделать для меня

ответ

2

У вас длинный список вещей. Вот один из способов их извлечения:

select substring_index(substring_index(email, ',', n.n), ',', -1) 
from (select 1 as n union all select 2 union all select 3) n join 
    chac c 
    on (length(c.email) - length(replace(c.email, ',', '')) + 1) <= n.n; 

Вы можете вставить это в другую таблицу, используя insert into или create table as.

выражение:

length(c.email) - length(replace(c.email, ',', '')) + 1 

подсчитывает количество сообщений электронной почты в списке, путем подсчета количества запятых и добавление 1. Выражение в select извлекает п-й элемент из списка.

Вам необходимо расширить подзапрос n до максимального количества значений, необходимых для ваших конкретных списков. Если вы не печатаете правильно, вы можете написать код в виде формул в Excel (или другую таблицу), скопировать их и вставить в свой инструмент запроса.

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