在MySQL中,'+'操作符在布尔表达式的上下文中做什么?

问题描述 投票:0回答:1

例如,我从PostgreSQL来到MySQL。

    IF (SELECT ((new.fieldA IS NULL) + (new.fieldB IS NULL) + (new.fieldC IS NULL)) <> 2)
    THEN
        do some stuff
    END IF;

我是从PostgreSQL来到MySQL的 我遇到了这样的语法(在select语句中),我很难搞清楚'+'运算符在这里到底是做什么的。

谢谢你

mysql operators boolean-expression
1个回答
1
投票

在这种情况下,布尔表达式将被视为整数,0代表假,1代表真。 然后,你的select:

SELECT ((new.fieldA IS NULL) + (new.fieldB IS NULL) + (new.fieldC IS NULL)) <> 2

将会是 真正 如果A、B、C三个字段中只有一个字段是非空的,其他两个字段为空。 如果三个字段都是空的,都不是空的,或者有两个字段不是空的,那么这个条件就会是假的。

© www.soinside.com 2019 - 2024. All rights reserved.