Thanks but I still do not get why this does not merit a, "you might want to
think about this".
So in the following query:
select * from new_payments where closed<>1;
it is desired that null=1. DeMorgan's law takes a vacation here.
Correct behavior, in that it is a feature, I expected that; desired - no
comment. Probably not expected in that selecting for closed=1 and closed<>1 does
not yield symmetric results. It was the [not] expected nature that lead me to
suggest perhaps an example might be helpful.
From <URL: http://dev.mysql.com/doc/mysql/en/working-with-null.html >
Note that in MySQL, 0 or NULL means false and anything else means true. The
default truth value from a boolean operation is 1.
mysql> select * from new_payments where not closed;
Empty set (0.01 sec)
So null is not exactly false, just sorta false. I still think this is worth a
comment in A.5.3.
On Mon, 19 Sep 2005, Roger Baklund wrote:
> doug@stripped wrote:
> > I did not expect that null was not not-equal to 1.
>
> Any comparison with NULL returns NULL:
>
> mysql> select null<>1,null>1,null<1,null=1;
> +---------+--------+--------+--------+
> | null<>1 | null>1 | null<1 | null=1 |
> +---------+--------+--------+--------+
> | NULL | NULL | NULL | NULL |
> +---------+--------+--------+--------+
> 1 row in set (0.00 sec)
>
> This is the correct and desired behaviour.
>
> <URL: http://dev.mysql.com/doc/mysql/en/null-values.html >
> <URL: http://dev.mysql.com/doc/mysql/en/working-with-null.html >
> <URL: http://dev.mysql.com/doc/mysql/en/problems-with-null.html >
>
> --
> Roger
>
_____
Douglas Denault
http://www.safeport.com
doug@stripped
Voice: 301-469-8766
Fax: 301-469-0601