Hi!

Just some explicit addition:

[EMAIL PROTECTED] wrote:
[[...]]

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.

You use two-valued logic here, where statements are either "true" or "false". (DeMorgan's law applies to two-valued logic only.)

When NULL values are not excluded, SQL uses a three-valued logic, where a stament may also be "unknown". Comparing NULL to any value (including a comparison of NULL and NULL) always results in "unknown".

This also the reason that the SQL syntax does not allow
   ... WHERE value = NULL
but requires that you write
   ... WHERE value IS NULL
It has also been said that NULL is no value but a state - maybe that helps in understanding.


HTH,
Jörg

--
Joerg Bruehe, Senior Production Engineer
MySQL AB, www.mysql.com

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to