MySQL更新语句未按预期工作

时间:2012-06-18 18:02:52

标签: mysql

我正在尝试做一个简单的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....

查询不起作用:(

3 个答案:

答案 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