SQL删除语句匹配条件

时间:2013-04-09 14:23:14

标签: mysql sql

我正在尝试根据两场比赛执行DELETE语句。我一直在Sequel Pro(OSX)中收到0 Rows affected

DELETE FROM devices WHERE device_id = '99999999999' AND state != 'PENDING'

device_idVARCHAR,州是ENUMERATED列表。

注意:如果我删除AND state != 'PENDING',查询将执行删除。但是,我需要在两个标准上进行匹配。

这似乎是state NULL的问题。

1 个答案:

答案 0 :(得分:2)

NULL无法使用!=运算符(或类似运算符)进行比较,结果实际上为NULL。这是SELECT 'PENDING' != NULL实际选择NULL而不是FALSETRUE。如果值为NULL,则必须使用IS NULLIS NOT NULL来检查并返回相应的布尔值。

AND (state != 'PENDING' OR state IS NULL)

文档:http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html