类似的谷歌电子邮件检查重复

时间:2018-02-26 15:04:34

标签: sql-server tsql

Google(可能还有其他人)将foo.bar@gmail.comfoobar@gmail.com视为同一个邮箱。

假设我的数据库中有用户电子邮件:

foo.bar@gmail.com

我想检查尝试注册foobar@gmail.com的新用户是否无法注册,因为该电子邮件已经存在。

该方案可能是用户已经注册foobar@gmail.com并且新用户尝试向foo.bar@gmail.com注册的另一种方式。为了我的目的,电子邮件是相同的,并且必须是“独特的”。

我试过了

declare @email nvarchar(255);
set @newEmail = 'foobar@gmail.com' -- or 'foo.bar@gmail.com'

select * from Users where REPLACE(Users.Email, '.', '') = REPLACE(@newEmail, '.', '')

但这似乎效率不高,可能与域名部分(gmail.com)发生冲突。

有更好的方法吗?

0 个答案:

没有答案