Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql sql正则表达式检查约束_Mysql - Fatal编程技术网

Mysql sql正则表达式检查约束

Mysql sql正则表达式检查约束,mysql,Mysql,在mysql中,我试图验证一封有效的电子邮件,但我没有 知道如何使用带约束的正则表达式 我不想使用触发器,有可能吗 在mySql中,您可以将其用于有效电子邮件,也可以不使用正则表达式来查找无效邮件 select email from your_table where email REGEXP '^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$'; 还是甲骨文 SELECT email FROM your_table WHERE REGEXP_

在mysql中,我试图验证一封有效的电子邮件,但我没有 知道如何使用带约束的正则表达式
我不想使用触发器,有可能吗

在mySql中,您可以将其用于有效电子邮件,也可以不使用正则表达式来查找无效邮件

select email from your_table where email  
        REGEXP '^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$';
还是甲骨文

SELECT email 
FROM your_table
WHERE REGEXP_LIKE (email, '[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}');

但请记住,这并不是一个绝对的解决方案,您可能会发现这很有用,因此post

MySQL不支持
CHECK
约束,因此在没有触发器的情况下似乎不可能执行此操作。您是否尝试在MySQL或PHP中执行此操作?您正在尝试在选择或插入/更新时进行验证?您可以验证服务器端的插入/更新。您可以在where子句中使用正则表达式进行选择。从版本8开始,MySQL确实支持
check
约束:不,我没有从数据库中选择我没有在我的表格中插入值时添加约束。为此,您应该创建触发器,(请参见如何创建触发器)并应用正则表达式作为回答感谢您的帮助,我是初学者,我想找一个简单的方法如果你想给数据库解决方案添加约束,我不认为有更简单的解决方案。如果您想使用简单的解决方案进行写入,因为您在将值插入数据库之前开始检查这些值