At 12:38 -0500 11/19/02, Arthur Fuller wrote:
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
That is false. The <=> operator is like = except that it is also true
for NULL comparisons. And when I try the queries below using <=>, the
records containing NULL *are* deleted. I'm not sure why David is observing
different behavior.
-----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