MySQL - NULL safe NOT equal operator

I found that NOT (NULL <=> 1) works and I think it is also ISO standard compliant, but is cumbersome. A better way to show using column names would be like this: NOT (tbl.col1 <=> 1)


COALESCE(tab.id, 0) != 1

Can be used here if you like it. I goes through the parameters, and returns the first value that isn't NULL. In this case if it's NULL, it will compare 0 != 1. Although it may use more signs, it's still easier to manage instead of being forced to always have opposite "booleans" as a solution in those cases.

Read documentation for COALESCE()


Now MySQL does not have a NULL-safe not equal operator.

Using MySQL the most universal solution is:

!(tab.id <=> 1)

or

NOT tab.id <=> 1

because it will work properly if even in place of 1 you will use NULL.