2

単純な mysql update ステートメントを実行しようとしています。または、少なくとも単純な update ステートメントだと思いました。正常に実行されていますが、指定された条件に一致せず、テーブルを更新しません...誰かが間違っていることを確認できますか?

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....

クエリは機能しません:(

4

3 に答える 3

3
update messagequeue set timesent = curtime() where deviceid = '1231231237' and timesent IS NULL
于 2012-06-18T18:04:49.077 に答える
1

右。「=」は NULL では機能しないため、セバスの回答のように「IS NULL」を使用する必要があります。

于 2012-06-18T18:07:20.713 に答える
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
于 2012-06-18T18:09:48.617 に答える