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



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



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

583   11  

11 ответов:

нет специальный синтаксис:

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)

NULL - Это специальное значение в SQL. Итак, чтобы обнулить свойство, сделайте следующее:

UPDATE table SET column = NULL;

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

UPDATE studentdetails
SET contactnumber = 9098979690
WHERE contactnumber IS NULL;

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

mysql> desc my_table;

Если ваш столбец не может быть null, когда вы установите значение 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)

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

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

Если вы хотите установить значение null с помощью update query set column value в NULL (без кавычек) обновление имя_таблицы набор имя_столбца = значение null

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

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

UPDATE table SET name = NULL

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

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

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

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

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

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

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

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

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

но напротив вышеуказанного вопроса " обновить столбец с нулевым значением" Может быть "обновить все строки в столбце до NULL"

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

> update table_name

> set field_name = NULL

> where field_name is not NULL;

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

Comments

    Ничего не найдено.