在MySQL中将值设置为NULL

时间:2012-02-16 15:47:46

标签: mysql sql

如果在我提交的表单中没有放入任何内容,我希望将值设置为NULL。我怎样才能做到这一点? 我尝试插入'NULL',但这只是将NULL添加到字段中。

我不确定我应该为此提供什么代码,我只是在写一个UPDATE查询。

9 个答案:

答案 0 :(得分:220)

请勿在更新语句中将NULL放在引号内。这应该有效:

UPDATE table SET field = NULL WHERE something = something

答案 1 :(得分:16)

你可能正在引用'NULL'。 NULL是MySQL中的保留字,可以不带引号插入/更新:

INSERT INTO user (name, something_optional) VALUES ("Joe", NULL);
UPDATE user SET something_optional = NULL;

答案 2 :(得分:10)

UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''

答案 3 :(得分:6)

if (($_POST['nullfield'] == 'NULL') || ($_POST['nullfield'] == '')) {
   $val = 'NULL';
} else {
   $val = "'" . mysql_real_escape_string($_POST['nullfield']) . "'";
}

$sql = "INSERT INTO .... VALUES ($val)";

如果您将'NULL'放入查询中,那么您只需插入一个4个字符的字符串。如果没有引号,NULL就是实际的空值。

答案 4 :(得分:5)

您应该插入null,而不是'NULL'

的字符串

答案 5 :(得分:4)

使用NULL(不带引号)。

UPDATE users SET password = NULL where ID = 4

答案 6 :(得分:3)

假设列允许空值设置,

$mycolupdate = null; // no quotes

应该做的伎俩

答案 7 :(得分:2)

这里给出的答案很好,但我仍然在努力发布NULL而不是在mysql表中为零。

最后我注意到问题出在我正在使用的插入查询中

   $quantity= "NULL";
   $itemname = "TEST";

到目前为止一切顺利。

我的插入查询不好。

   mysql_query("INSERT INTO products(quantity,itemname) 
   VALUES ('$quantity','$itemname')");

我更正了要查阅的查询。

   mysql_query("INSERT INTO products(quantity,itemname) 
   VALUES ('".$quantity."','$itemname')");

所以$ quantity在主字符串之外。 我的sql表现在接受记录空数而不是0

答案 8 :(得分:2)

你遇到的问题很可能是因为mysql区分用大写字母写的null和用小写字母写的null。

因此,如果您使用带有null的update语句,则无效。如果将其设置为NULL,则可以正常工作。

感谢。