Hi,

Because "NULL is not a value". Operators [!=] must be suceeded by a value. These orphans must be selected in a correct way using "is" clause.

Thanks
ViSolve DB Team

----- Original Message ----- From: "Mufaddal Khumri" <[EMAIL PROTECTED]>
To: <mysql@lists.mysql.com>
Sent: Thursday, June 14, 2007 1:20 AM
Subject: Understanding mysql NULL handling ...


Hello,

I am using Ver 8.41 Distrib 5.0.27, for apple-darwin8.5.1 on i686

==================
My table definition:
==================

mysql> show create table t1;
+------- +----------------------------------------------------------------------- ------------------------------------------------------------------------ ----------------------------------------+ | Table | Create Table | +------- +----------------------------------------------------------------------- ------------------------------------------------------------------------ ----------------------------------------+
| t1    | CREATE TABLE `t1` (
  `id` int(11) NOT NULL auto_increment,
  `sid` int(11) default NULL,
  `tx` varchar(10) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+------- +----------------------------------------------------------------------- ------------------------------------------------------------------------ ----------------------------------------+
1 row in set (0.00 sec)

==================
The data in my table:
==================

mysql> select * from t1;
+----+------+-------+
| id | sid  | tx    |
+----+------+-------+
|  1 |    1 | hello |
|  2 |    2 | hello |
|  3 | NULL |       |
|  4 | NULL | NULL  |
|  5 |    5 | hello |
+----+------+-------+
5 rows in set (0.00 sec)

==================
The query I execute:
==================

mysql> select * from t1 where sid != 2;
+----+------+-------+
| id | sid  | tx    |
+----+------+-------+
|  1 |    1 | hello |
|  5 |    5 | hello |
+----+------+-------+
2 rows in set (0.00 sec)


As you can see, the rows that had sid = NULL did not get returned in the results when i did "... where sid != ; "

Question: Is this behaviour correct and is in accordance to the SQL standard or is it specific to MySQL ?

Thanks.


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



--
No virus found in this incoming message.
Checked by AVG Free Edition. Version: 7.5.472 / Virus Database: 269.8.15/847 - Release Date: 6/12/2007 9:42 PM




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

Reply via email to