在MySQL中将值设置为NULL
我想要一个值被设置为NULL
如果没有什么被放到我提交的forms的文本框中。 我怎样才能做到这一点? 我试过插入'NULL'
但是这只是将NULL
字添加到字段中。
我不知道我应该提供什么代码,我只是写一个更新查询。
不要把你的update语句中的NULL
放在引号内。 这应该工作:
UPDATE table SET field = NULL WHERE something = something
你可能会引用'NULL'。 NULL是MySQL中的保留字,可以插入/更新而不用引号:
INSERT INTO user (name, something_optional) VALUES ("Joe", NULL); UPDATE user SET something_optional = NULL;
UPDATE MyTable SET MyField = NULL WHERE MyField = ''
if (($_POST['nullfield'] == 'NULL') || ($_POST['nullfield'] == '')) { $val = 'NULL'; } else { $val = "'" . mysql_real_escape_string($_POST['nullfield']) . "'"; } $sql = "INSERT INTO .... VALUES ($val)";
如果将'NULL'
放入查询中,则只需插入一个4个字符的string即可。 没有引号, NULL
是实际的空值。
你应该插入null
,而不是'NULL'
的string。
使用NULL
(不包括引号)。
UPDATE users SET password = NULL where ID = 4
假设列允许空设置,
$mycolupdate = null; // no quotes
应该做的伎俩
你所遇到的问题很可能是因为mysql区分了以大写字母写的空白和小写的空字符。
所以,如果你使用了一个更新语句为空,它将无法正常工作。 如果您将其设置为NULL,它将正常工作。
谢谢。
这里给出的答案是好的,但我仍然努力在MySQL表中发布NULL和不零。
最后我注意到问题是在我使用的插入查询
$quantity= "NULL"; $itemname = "TEST";
到现在为止还挺好。
我的插入查询是不好的。
mysql_query("INSERT INTO products(quantity,itemname) VALUES ('$quantity','$itemname')");
我更正了查询来阅读。
mysql_query("INSERT INTO products(quantity,itemname) VALUES ('".$quantity."','$itemname')");
所以$数量在主string之外。 我的SQLperformance在接受logging零数量而不是0