Как выбрать из базы уникальную часть email адреса после @

Тема в разделе "Базы данных", создана пользователем dandandan, 7 май 2012.

Модераторы: latteo
  1. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    991
    Симпатии:
    267
    Есть таблица table с email адресами. Название колонки - email
    Нужно выбрать уникальные email адреса веб серверов, т.е. данные, которые идут после знака @ . Т.е. в выборке должны быть уникальные адреса: ya.ru , mail.ru , narod.ru и т.д.
     
  2. Grigirij

    Grigirij $$$

    Регистр.:
    25 сен 2008
    Сообщения:
    700
    Симпатии:
    334
    можно регуляркой удалить всё что перед @ расположено, потом сохранить данные в тхт загнать в любой софт что с ключевиками работает (KWK например) и удалить дубли.
     
  3. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    А смысл с текстовыми файлами играться? Проще в массив загнать и воспользоваться функцией array_unique();
     
  4. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    991
    Симпатии:
    267
    Есть ли возможность одним sql запросом получить эти данные? Все остальное меня не интересует. С помощью php я такое сделаю легко, а вот с помощью mysql - не знаю как.
     
  5. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.407
    Один из возможных вариантов
    Код:
    SELECT SUBSTRING_INDEX(`email`, '@', -1) AS `domain` FROM `table` GROUP BY `domain`
     
    dandandan нравится это.
  6. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    mysql:
    select DISTINCT SUBSTRING_INDEX(email, '@', -1) from antibb_user
     
    dandandan нравится это.
  7. kvantor

    kvantor Постоялец

    Регистр.:
    30 окт 2008
    Сообщения:
    89
    Симпатии:
    33
    TextPipe программа. Поищи в гугле, если операции в текстовый вывод,то она лучшая. А в БД - операциями стринг