MySQL сравнить 2 столбца подстроки - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь найти, сколько симулированных доменов есть в таблице согласно таблице электронных писем.

Пример данных:

domains              emails
_______              ______ 
gmail.nl             test@google.com
gmail.com            test@gmail.com
gmail.uk

Я пытался использовать этот запрос:

SELECT (SELECT COUNT(*) FROM domains
    WHERE 
    right(domain, INSTR(domain, '.')-1) 
    LIKE 
    CONCAT('%', right(email, length(email)-INSTR(email, '@')), '%')) as "total",
    right(email, length(Email)-INSTR(Email, '@')) FROM emails GROUP BY email

Здесь я сравниваю часть строки из одной таблицы с другой подстрокой из другой таблицы.
Взгляните на этот DBFIDDLE: https://www.db -fiddle.com / f / kdf9iwaEPPz6kMpHqWhZkh / 0

Я получаю 0 в качестве результата для каждой строки, но для gmail это должно быть 3.
Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 05 ноября 2018

Я думаю, я исправил это:

Это мой запрос сейчас:

SELECT (SELECT COUNT(*) FROM domains
    WHERE 
    emails.email
    LIKE 
    CONCAT('%', LEFT(domain, INSTR(domain, '.')-1), '%') 
    ) as "total",
    right(emails.email, length(emails.email)-INSTR(emails.email, '@')) FROM emails GROUP BY emails.email

Я получил желаемый результат!
Я переключил столбцы и удалил подстроку из электронной почты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...