sql - MySQL 中的 OR 非空约束

标签 sql mysql null

在 MySQL 中创建非 NULL 约束的最佳方法是什么,这样 fieldA 和 fieldB 不能都为 NULL。我不在乎其中任何一个本身是否为 NULL,只要另一个字段具有非 NULL 值即可。如果它们都具有非 NULL 值,那就更好了。

最佳答案

这不是直接回答您的问题,而是一些附加信息。

在处理多个列并检查是否全部为空或一个不为空时,我通常使用 COALESCE() - 如果列表增长,它会简短、易读且易于维护:

COALESCE(a, b, c, d) IS NULL -- True if all are NULL

COALESCE(a, b, c, d) IS NOT NULL -- True if any one is not null

这可以在您的触发器中使用。

关于sql - MySQL 中的 OR 非空约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/170492/

相关文章:

mysql - SQL加入一对多关系 - 计算每张图片的票数?

sql - ORDER BY的列有时为空

mysql - 无法转换变量 MYSQL

php - 检查 "is not null"或空字符串的 PHP 语法是什么?

mysql - 不允许我设置任何端口的监听器 (Oracle Netca)

PHP PDO : Array in Update SQL WHERE IN () clause

MySQL - InnoDB,缓存查询的一部分以加快执行时间

mysql - 从多列按日期分组?

MySQL:获取日期为 NULL 的行,或者如果存在则获取具有设置日期的行

scala - 查找 Array[Int] 的第一个空值