你如何用NULL正确更新mysql字段?

时间:2011-11-04 01:25:46

标签: mysql null

在sql查询中使用变量时,如何使用NULL值正确更新mysql字段?

我有一个名为$ timestamp的变量。当它设置为date( Y-m-d h:i:s )时,我必须用引号括起来,因为我在mysql查询中传递了一个字符串。当$ timestamp设置为NULL时,数据库查询包含''作为$ timestamp的值,字段更新为0000-00-00 00:00:00。将此字段保持为NULL非常重要,以表明该进程以前从未运行过。

我不想使用now()因为那时我的sql语句与我的类变量$ timestamp不同步。

我不想将$ timestamp设置为'NULL',因为那个变量不准确。它不再是NULL,它被设置为包含单词NULL的字符串。

我在这里缺少什么?

2 个答案:

答案 0 :(得分:2)

将列设置为NULL的正确SQL语法是:

  UPDATE Table SET Column = NULL WHERE . . .

(注意文字NULL周围缺少引号)。

您是使用SQL还是使用某种框架执行此UPDATE?如果是框架,它应该识别NULL值并正确地将它们传递给数据库。

答案 1 :(得分:-1)

经过大量的研究,我发现这是一个众所周知的问题,如果您直接编写sql查询,则没有好的解决方案。

正确的解决方案是使用数据库抽象层,如PDO(对于PHP)或Active Record(在Codeignitor和Ruby on Rails等框架中使用)。