我正在尝试做一个简单的mysql更新语句,或者至少我认为这是一个简单的更新语句。它正在执行成功,但它不符合条件指定并且不会更新表...任何人都可以看到我做错了什么?
update messagequeue set timesent = curtime() where deviceid = '1231231237' and timesent = NULL
表中有4列,1行。
id, message, deviceid, timesent
the timesent is default null.
the deviceid is '1231231237'
id = 1
message is just some junk....
查询不起作用:(
答案 0 :(得分:3)
update messagequeue set timesent = curtime() where deviceid = '1231231237' and timesent IS NULL
答案 1 :(得分:1)
右。 '='不适用于NULL,所以你应该像Sebas的答案一样使用'IS NULL'。
答案 2 :(得分:1)
UPDATE messagequeue SET timesent = curtime() WHERE deviceid = '1231231237' AND timesent IS NULL
NULL不会按照您的定义工作,而是使用IS NULL检查。
同时检查数据类型'deviceid'。如果它是Int,那么不要使用单引号,使用它如下:
UPDATE messagequeue SET timesent = curtime() WHERE deviceid = 1231231237 AND timesent IS NULL