如何使用null值更新列

jim*_*jim 137 mysql sql-update

我使用的是mysql,需要使用null值更新列.我尝试了很多不同的方法,我得到的最好的是一个空字符串.

有没有特殊的语法来做到这一点?

Dan*_*llo 206

没有特殊语法:

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)
Run Code Online (Sandbox Code Playgroud)


Gum*_*mbo 39

NULL是SQL中的特殊值.因此要将属性置零,请执行以下操作:

UPDATE table SET column = NULL;
Run Code Online (Sandbox Code Playgroud)

  • MySQL手册指出,如果列不允许NULL值,将其设置为NULL将导致数据类型的默认值(例如空字符串)。您的列是否 100% 允许 NULL?你能向我们展示创建表吗? (2认同)

kor*_*nya 13

使用IS而不是= 这将解决您的问题示例语法:

UPDATE studentdetails
SET contactnumber = 9098979690
WHERE contactnumber IS NULL;
Run Code Online (Sandbox Code Playgroud)

  • 非常帮助,谢谢 (3认同)
  • 欢迎您,您可以问我任何与SQL相关的查询 (2认同)

Thi*_*ata 6

请记住查看您的列是否为null.你可以使用

mysql> desc my_table;
Run Code Online (Sandbox Code Playgroud)

如果您的列不能为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)
Run Code Online (Sandbox Code Playgroud)


Nit*_*Pal 6

在上面的答案中,已经提出了许多相同的方法和重复。我一直在寻找问题的答案,但在这里找不到。

提出上述问题“更新具有空值的列”的另一种方法可能是“将列中的所有行都更新为空”

在这种情况下,以下作品

update table_name
set field_name = NULL
where field_name is not NULL;
Run Code Online (Sandbox Code Playgroud)

isis not适用于 mysql