好的,所以我必须进行查询,以选择所有具有相同域名和名称的电子邮件。
例如,我有类似的情况
myname@myname.com或test@test.com.
我想选择所有与这些行类似的行。
我试着像like操作数一样操作,但不能处理太多。
使用SUBSTRING_INDEX()
提取名称和域:
SELECT *
FROM tablename
WHERE SUBSTRING_INDEX(email, '@', 1) =
SUBSTRING_INDEX(SUBSTRING_INDEX(email, '@', -1), '.', 1)
请参阅演示
这可能是一个起点:
SELECT email
FROM email_addresses
WHERE email like CONCAT('%@', SUBSTRING_INDEX(email, '@', 1), '.%')
;
SUBSTRING_INDEX
函数拆分电子邮件地址以获取"@"之前的部分,以便将其与LIKE
运算符一起使用。问题与电子邮件地址的最后部分有关,因为它可能是.com、.net、.org……或者电子邮件地址可能是x.ross@x.ross.com.您可以在SqlFiddle 中看到结果