Задайте значение NULL в MySQL

Я хочу, чтобы значение было установлено на NULL, если ничто не помещено в текстовое поле в форме, которую я отправляю. Как я могу это сделать? Я пробовал вставлять 'NULL', но это просто добавляет слово NULL в поле.

Я не уверен, какой код я должен предоставить для этого, я просто пишу запрос UPDATE.

Ответ 1

Не помещайте NULL внутри кавычек в свой оператор обновления. Это должно работать:

UPDATE table SET field = NULL WHERE something = something

Ответ 2

Вероятно, вы цитируете "NULL". NULL является зарезервированным словом в MySQL и может быть вставлено/обновлено без кавычек:

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

Ответ 3

UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''

Ответ 4

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

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

если вы поместите 'NULL' в свой запрос, тогда вы просто вставляете 4-символьную строку. Без кавычек NULL - фактическое значение null.

Ответ 5

Вы должны вставить null, а не строку 'NULL'.

Ответ 6

Используйте NULL (без кавычек вокруг него).

UPDATE users SET password = NULL where ID = 4

Ответ 7

Предполагая, что столбец допускает нулевую настройку,

$mycolupdate = null; // no quotes

должен сделать трюк

Ответ 8

Проблема, с которой вы столкнулись, скорее всего связана с тем, что mysql различает нуль, написанный заглавными буквами, и null, написанный в маленьком регистре.

Итак, если вы использовали инструкцию update с нулевым значением, это не сработало. Если вы установите значение NULL, это будет нормально работать.

Спасибо.

Ответ 9

Ответы, приведенные здесь, хороши, но я все еще пытался опубликовать 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')");

Итак, величина $находится за пределами основной строки. Моя таблица sql теперь принята для записи нулевого количества вместо 0