Reputation: 13
For example:
IF (SELECT ((new.fieldA IS NULL) + (new.fieldB IS NULL) + (new.fieldC IS NULL)) <> 2)
THEN
do some stuff
END IF;
I am coming to MySQL from PostgreSQL. I came across this syntax (in the select statement) and am having a hard time figuring out what exactly the '+' operators are doing here.
Thanks
Upvotes: 0
Views: 16
Reputation: 521419
In this case, the boolean expressions will be treated as integers, with 0 representing false and 1 representing true. Then, your select:
SELECT ((new.fieldA IS NULL) + (new.fieldB IS NULL) + (new.fieldC IS NULL)) <> 2
will be true if only one of the three A, B, C fields is non null, with the other two being null. If all three are null, all are not null, or two are not null, then the condition would be false.
Upvotes: 1