>>Nothing can be compared to null, not even null This is not so...
mysql> select NULL <=> NULL; +---------------+ | NULL <=> NULL | +---------------+ | 1 | +---------------+ 1 row in set (0.00 sec) As explained in the manual http://www.mysql.com/doc/en/Comparison_Operators.html <=> is a NULL safe equal and should work. It works fine in the delete if there is no index, which suggests that the problem is with the index, not with the comparison. Cheers, Andrew -----Original Message----- From: Arthur Fuller [mailto:[EMAIL PROTECTED]] Sent: 19 November 2002 17:39 To: Andrew Braithwaite; [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: RE: delete where column <=> null Nothing can be compared to null, not even null, which implies that MySQL is wrong in returning two rows in the SELECT. Your query needs to say IS NULL: delete from t where id = 1 and num is null; Arthur -----Original Message----- From: Andrew Braithwaite [mailto:[EMAIL PROTECTED]] Sent: Tuesday, November 19, 2002 12:26 PM To: [EMAIL PROTECTED] Cc: '[EMAIL PROTECTED]' Subject: RE: delete where column <=> null David, I get the same behaviour with mysql 3.23.47 (not max) and with mysql v 4.0.4-beta Without the index it works fine. Must be a bug.... Cheers, Andrew -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: 19 November 2002 16:45 To: [EMAIL PROTECTED] Subject: delete where column <=> null Hi, I'm trying to delete from a table where col <=> null, but it doesn't seem to work. I don't see anything in the manual that says that <=> can't be used in the where clause of a delete statment, but: mysql> select * from t; +----+------+ | id | num | +----+------+ | 1 | NULL | | 1 | NULL | +----+------+ 4 rows in set (0.00 sec) mysql> delete from t where id = 1 and num <=> null; Query OK, 0 rows affected (0.00 sec) mysql> select * from t where id = 1 and num <=> null; +----+------+ | id | num | +----+------+ | 1 | NULL | | 1 | NULL | +----+------+ 2 rows in set (0.00 sec) This behavior seems very bizarre and counter-intuitive to me, but it's such an obvious bug that I'm afraid it must be a feature and not a bug. Can anyone help/explain? Using "is null" in the where clause works, of course, but would be relatively cumbersome to use. Db is 3.23.53-max-nt Thanks, -David p.s. in case it's relevant, there is a unique index on (id,num): create table t ( id integer not null, num integer, unique index id_num_idx(id,num) ); --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php