如何编写查询以确保电子邮件包含@

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何编写查询以确保电子邮件包含@相关的知识,希望对你有一定的参考价值。

我正在db2中创建数据库,我想添加一个约束来验证用户是否插入了包含%@%.%的有效电子邮件地址。没有运气...有什么建议吗?

答案

您可以将LIKE与通配符一起使用。有关DB2上的通配符,请参见here

下划线字符(_)表示任何单个字符。

百分号字符(%)表示一个零个或多个字符的字符串。

SELECT email 
FROM YourTable 
WHERE email NOT LIKE '%_@__%.__%'

这将忽略以下情况(有效电子邮件的简单版本:]

  • 电子邮件中@之前至少包含一个字符;
  • 电子邮件中@和。之间至少有两个字符;
  • 之间至少包含两个字符的电子邮件。和结尾。

您可以在sqlfiddlemysql中看到一个示例。

要将其添加为约束,您可以这样做(就像mustaccio在评论中说的那样:]]

alter table your_table add constraint chk_email check (email like '%_@__%.__%')
另一答案

您可以创建一个触发器,该触发器使用描述电子邮件结构的正则表达式检查给定的字符串

另一答案

仅确保@并不是验证电子邮件地址的理想选择。

以上是关于如何编写查询以确保电子邮件包含@的主要内容,如果未能解决你的问题,请参考以下文章

如何在 graphQL 片段中定义可选字段以进行查询

sql 查询以顺序更改wp用户表中的用户电子邮件,以确保所有内容都不同

sql 查询以顺序更改wp用户表中的用户电子邮件,以确保所有内容都不同

如何编写单元测试以确保我的基于日期/时间的代码适用于所有时区以及有/无 DST?

如何使用 tabLayout 在 ViewPager 中显示片段?

如何编写多部分 MIME 混合消息以在 Outlook 中正确显示