一尘不染

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

sql

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


阅读 125

收藏
2021-05-23

共1个答案

一尘不染

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

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

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

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

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

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

您可以在sqlfiddle的MySql中看到一个示例。

要将其添加为约束,您可以执行此操作(如mustaccio在评论中所述):

alter table your_table add constraint chk_email check (email like '%_@__%.__%')
2021-05-23