Как обновить столбец с нулевым значением

Я использую mysql и нуждаюсь в обновлении столбца с нулевым значением. Я пробовал это много разных способов, и лучшее, что я получил, это пустая строка.

Есть ли специальный синтаксис для этого?

Ответ 1

Нет специального синтаксиса:

CREATE TABLE your_table (some_id int, your_column varchar(100));

INSERT INTO your_table VALUES (1, 'Hello');

UPDATE your_table
SET    your_column = NULL
WHERE  some_id = 1;

SELECT * FROM your_table WHERE your_column IS NULL;
+---------+-------------+
| some_id | your_column |
+---------+-------------+
|       1 | NULL        |
+---------+-------------+
1 row in set (0.00 sec)

Ответ 3

Используйте IS вместо = Это решит вашу проблему пример синтаксиса:

UPDATE studentdetails
SET contactnumber = 9098979690
WHERE contactnumber IS NULL;

Ответ 4

Не забудьте посмотреть, может ли ваш столбец быть нулевым. Вы можете сделать это с помощью

mysql> desc my_table;

Если ваш столбец не может быть нулевым, когда вы установите значение null, это будет значение отливки.

Вот пример

mysql> create table example ( age int not null, name varchar(100) not null );
mysql> insert into example values ( null, "without num" ), ( 2 , null );
mysql> select * from example;
+-----+-------------+
| age | name        |
+-----+-------------+
|   0 | without num |
|   2 |             |
+-----+-------------+
2 rows in set (0.00 sec)

mysql> select * from example where age is null or name is null;
Empty set (0.00 sec)

Ответ 5

Для тех, кто сталкивается с подобной проблемой, я обнаружил, что при "имитации" запроса SET = NULL PHPMyAdmin выдавал бы ошибку. Это красная селедка.. просто запустите запрос, и все будет хорошо.

Ответ 6

Другая возможная причина для пустой строки, а не истинного нуля, заключается в том, что поле является индексом или является частью индекса. Это случилось со мной: используя phpMyAdmin, я редактировал структуру поля в одной из моих таблиц, чтобы разрешить NULL, установив флажок " Null", а затем нажав " Сохранить", кнопка. "Табличное ценообразование было изменено успешно", и я предположил, что это произошло - это не так. После выполнения UPDATE, чтобы установить все эти поля в NULL, они вместо этого установили пустые строки, поэтому я снова посмотрел на структуру таблицы и увидел, что столбца Null "для этого поля было установлено значение нет. Это, когда я понял, что поле было частью Первичного ключа!

Ответ 7

Если вы хотите установить нулевое значение, используя значение столбца запроса обновления, установите значение NULL (без кавычек) update tablename set columnname = NULL

Однако, если вы непосредственно редактируете значение поля внутри workbench mysql, используйте клавишу (Esc + del), чтобы вставить нулевое значение в выбранный столбец

Ответ 8

если вы следуете

UPDATE table SET name = NULL

тогда имя равно "", а не NULL IN MYSQL означает ваш запрос

SELECT * FROM table WHERE name = NULL не работает или не разочаровывается

Ответ 9

Я подозреваю, что проблема заключается в том, что кавычки были введены как литералы в вашем строковом значении. Вы можете установить для этих столбцов значение null:

UPDATE table SET col=NULL WHERE length(col)<3;

Вы должны, конечно, сначала проверить, что эти значения действительно "" с чем-то вроде:

SELECT DISTINCT(col) FROM table WHERE length(col)<3;

Ответ 10

используйте is вместо =

Например: Select * from table_name where column is null

Ответ 11

В приведенных выше ответах было предложено много способов и повторений для одного и того же. Я продолжал искать ответ, поскольку упомянутый вопрос - вопрос, но не мог найти здесь.

Но в противоположность приведенному выше вопросу "обновить столбец с нулевым значением" может быть "ОБНОВИТЬ ВСЕ СТРОКИ В КОЛОННЕ, ЧТОБЫ ПОЛУЧИТЬ"

В такой ситуации следующие работы

update table_name
set field_name = NULL
where field_name is not NULL;

is так же is not работает в MySQL

Ответ 12

Сначала столбец в TABLE_NAME должен принять NULL и   вы, вероятно, уже осознаете, что для value NULL  вам нужно использовать

    Eg: UPDATE TABLE_NAME SET column_name = NULL
    Eg: instead of using column_name = 'NULL'.


    So, in a situation where one use a "selected value" to update a table                         
    in database, such as the following very simple example,

    Part one,
    Condition of the variable:
    Checkbox(name = "checkbox") 
    Eg: if not click, $_POST["checkbox"] = "",
    Eg: if clicked, $_POST["checkbox"] = "1".

    Now, we must try to make this $_POST["checkbox"] to convert the value ""         
    to NULL and update to the database table.

    An alternative way that I found is to use echo and assign echo value to         
    a $variable

    of course, you already know how to use  if {} else {}. 

    To save echo value to a $variable, I did the following:

    Eg: ob_start()

    Eg: echo     <==hint 1: selected value here.

    Eg: $variable1  = ob_get_contents()

    Eg: ob_end_clean()   



    Then, you need to do this again,

    Eg: ob_start()

    Eg: echo    <==hint 2: command line + selected value here.

    Eg: $variable2 = ob_get_contents()

    Eg: ob_end_clean()   


    MYSQL will be something like the following:

    Eg: UPDATE table_name SET
    Eg: name = '$name',
    Eg: $variable2,
    Eg: date = '$date'
    Eg: WHERE id = '$id';

    see the trick is to how to make
    Eg: $variable2 to show either 

    Eg: checkbox = NULL 

    or to show 
    Eg: checkbox = '1'

    Hope this can give you a guide to solve this problem.
    I think you have enough knowledge to fill in the blanks. Good luck.


    Additional note:  you can do the same for (MYSQL) INSERT INTO