2013-04-11 2 views
-1

У меня есть столбец электронной почты в моей таблице пользователей, который, когда функция пользовательского интерфейса выбрана для удаления пользователя, просто обновляет адрес электронной почты и добавляет к нему время.Обрезка результатов запроса mysql

В основном [email protected] превращается в [email protected]

Теперь я могу найти обновленные пользователей с помощью:

SELECT DISTINCT SUBSTRING_INDEX(email, '.', 2) 
FROM users 

но проблема у меня на электронные письма, которые показывают 2 или 3 знаков после запятой до символа @ очевидно, не отображаются правильно. Так [email protected] показывает как [email protected] и так далее.

Как я могу убедиться, что я удаляю только самую последнюю часть за последним ». 'в результате?

+0

Я не хочу, чтобы отправить его в ответ, потому что я только 95% уверен, но 3 последних символов доменного имени ('.com', '.com.ar' и т. д.) ДОЛЖНЫ быть алфавитными (/ [az] {2,3}/i), чтобы вы могли обнаружить переход между этими символами и * конец * ($) части строка, которая всегда является числовой в вашем случае. – Sebas

ответ

-1

и гораздо более безопасным способом,

SELECT TRIM(TRAILING CONCAT('.',REVERSE(SUBSTRING_INDEX(REVERSE(email), '.', 1))) FROM email) email 
FROM Users 

http://www.sqlfiddle.com/#!2/0b02c/22

+0

отображает смешанные результаты. около 50% верны, но остальные 50% результатов вытягивают данные, которые не имеют .1234567 в конце – Ansipants

+0

см. мой обновленный ответ. –

+0

см. Также эту новую демонстрацию http://www.sqlfiddle.com/#!2/5bee8/1 –