在 Postgresql 中使用正则表达式将电子邮件地址与名字匹配



我们受到了很多帐户创建的打击,我正在尝试过滤掉包含名称的电子邮件地址列之间不匹配的任何内容,并将其与具有名字的列匹配。

我想找到一种方法来使用正则表达式比较这些,是的,我希望当电子邮件地址中没有给出名称时,很多都会不匹配。

例:

email_address      | first_name | bool
john.doe@gmail.com | john       | true
john.doe@gmail.com | Sonny      | false

您可以使用like

select
email_address,
first_name,
email_address like first_name || '%' bool
from mytable

这将检查电子邮件地址是否以名字开头

如果需要不区分大小写的匹配项,可以使用ilike而不是like

为了更精确地匹配名字,并假设电子邮件始终在 for<first_name>.<last_name>@....中,您可以执行以下操作:

email_address like first_name || '.%'

相关内容

最新更新