[英]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中的NULL
和empty
之间有区别。 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.