繁体   English   中英

MySQL用NULL更新Varchar列

[英]MySQL updating Varchar Column with NULL

在mysql中,我需要使用空值更新Varchar列。 我可以这样使用一些查询:

update books set Volume='NULL' WHERE BookId=5457 

但是它只是用NULL作为字符串更新列。如果我在mysql函数COALESCE上使用此列数据,它将以字符串形式返回NULL而不是真正的NULL 我的主要问题在于以下陈述:

Select Title,COALESCE(Volume,PackId) From books where BookId=5457 

我需要COALESCE来获取第一个not null并且如果我是否使用qoutes运行更新,它不会将真正的NULL添加到mysql行中,并且COALESCE无法正常工作并返回Volume not PackId

有特殊的语法可以做到这一点吗?

从Null中删除单引号:

update books set Volume=NULL WHERE BookId=5457 

我找到了答案。 Mysql中的NULLempty之间有区别。 NULL表示未设置,空表示0;

对于我在创建表或更改表以添加具有Varchar类型的新字段时的问题,我应该允许Mysql可以将Null值设置为如下字段:

ALTER TABLE `books` ADD `Volume` VARCHAR(25) NULL

或禁止使用Mysql,例如:

ALTER TABLE `books` ADD `Volume` VARCHAR(25) NOT NULL

正在运行

update books set Volume=NULL WHERE BookId=5457

将导致设置真实的NULL ,而COALESCE函数会将其理解为NULL

谢谢大家帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM