А как насчет трех электронных писем / имен?С указанными данными это должно быть легко сделать
select replace(substring(substring_index(`Personnel`, ',', 1),length(substring_index(`Personnel`, ',', 1 - 1)) + 1), ',', '') personnel1,
replace(substring(substring_index(`Personnel`, ',', 2),length(substring_index(`Personnel`, ',', 2 - 1)) + 1), ',', '') personnel2,
from `pubs_for_client`
Выше разделит столбец Персонал на разделитель ,
.
Затем вы можете разделить эти поля на разделитель (
и )
дляразделить персонал на имя, должность и адрес электронной почты
SQL будет некрасивым (потому что mysql не имеет функции split), но он выполнит свою работу.
Было взято выражение splitиз комментариев mysql документация (поиск по сплит).
Вы также можете
CREATE FUNCTION strSplit(x varchar(255), delim varchar(12), pos int) returns varchar(255)
return replace(substring(substring_index(x, delim, pos), length(substring_index(x, delim, pos - 1)) + 1), delim, '');
После чего вы можете
select strSplit(`Personnel`, ',', 1), strSplit(`Personnel`, ',', 2)
from `pubs_for_client`
Youможет также создать вашу собственную функцию, которая будет извлекать непосредственно имена и электронные письма.