我正在使用mysql,并且需要将一个字段更新为空值。我已经尝试了多种方法,最好的结果只是得到了一个空字符串。
是否有特殊的语法可以实现这个目的?
我正在使用mysql,并且需要将一个字段更新为空值。我已经尝试了多种方法,最好的结果只是得到了一个空字符串。
是否有特殊的语法可以实现这个目的?
没有特殊的语法:
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中的一个特殊值。 因此,要将属性设置为null,请执行以下操作:
UPDATE table SET column = NULL;
使用IS
代替=
,
这将解决您的问题。
示例语法:
UPDATE studentdetails
SET contactnumber = 9098979690
WHERE contactnumber IS NULL;
update table_name
set field_name = NULL
where field_name is not NULL;
is
以及 is not
在 MySQL 中都可以使用。
记得检查您的列是否可以为空。您可以使用
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)
如果您遇到类似的问题,我发现当'模拟'一个SET = NULL
查询时,PHPMyAdmin会抛出错误。这是一个误导..只需运行查询,一切都会好的。
SolicitudesCFDI
SET NumPaq
= NULL where ID
in (754,1042,1043,1045,1046);
为了预防起见,我总是在执行之前模拟查询...
谢谢。 - undefined如果您想使用更新查询设置空值,请将列值设置为NULL(不带引号)
update tablename set columnname = NULL
然而,如果您直接在mysql workbench中编辑字段值,则使用(Esc + del)按键将空值插入所选列。
使用is
代替=
例如:Select * from table_name where column is null
空字符串而不是true null的另一个可能原因是该字段是索引或索引的一部分。我曾经遇到过这种情况:使用phpMyAdmin,我编辑了一个表中的字段结构,通过选中“Null”复选框然后点击“Save”按钮来允许NULLs。显示“Table pricing has been altered successfully”,所以我认为更改已经发生--但实际上并没有。在执行UPDATE将所有这些字段设置为NULL之后,它们被设置为空字符串,因此我再次查看表结构,发现该字段的“Null”列设置为“no”。那时我意识到该字段是主键的一部分!
if you set NULL for all records try this:
UPDATE `table_name` SET `column_you_want_set_null`= NULL
或者对于特殊记录,将其设置为NULL,使用WHERE语句
。该内容涉及编程,并保留了HTML格式。UPDATE `table_name` SET `column_you_want_set_null`= NULL WHERE `column_name` = 'column_value'