MySQL比较字符串的第一部分和第二部分是否相同



好的,所以我必须进行查询,以选择所有具有相同域名和名称的电子邮件。

例如,我有类似的情况

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 中看到结果

最新更新