在 MySQL 中,“+”运算符在布尔表达式的上下文中有什么作用?
In MySQL, what does the '+' operator do in the context of a boolean expression?
例如:
IF (SELECT ((new.fieldA IS NULL) + (new.fieldB IS NULL) + (new.fieldC IS NULL)) <> 2)
THEN
do some stuff
END IF;
我从 PostgreSQL 来到 MySQL。我遇到了这种语法(在 select 语句中)并且很难弄清楚“+”运算符到底在做什么。
谢谢
在这种情况下,布尔表达式将被视为整数,0 表示假,1 表示真。那么,你的 select:
SELECT ((new.fieldA IS NULL) + (new.fieldB IS NULL) + (new.fieldC IS NULL)) <> 2
如果 A、B、C 三个字段中只有一个不为空,而其他两个为空,则 将为 true。如果三个都为空,全部不为空,或者两个不为空,则条件为假。
例如:
IF (SELECT ((new.fieldA IS NULL) + (new.fieldB IS NULL) + (new.fieldC IS NULL)) <> 2)
THEN
do some stuff
END IF;
我从 PostgreSQL 来到 MySQL。我遇到了这种语法(在 select 语句中)并且很难弄清楚“+”运算符到底在做什么。
谢谢
在这种情况下,布尔表达式将被视为整数,0 表示假,1 表示真。那么,你的 select:
SELECT ((new.fieldA IS NULL) + (new.fieldB IS NULL) + (new.fieldC IS NULL)) <> 2
如果 A、B、C 三个字段中只有一个不为空,而其他两个为空,则 将为 true。如果三个都为空,全部不为空,或者两个不为空,则条件为假。