Php MySQL正在使用NULL更新Varchar列
在mysql中,我需要用空值更新Php MySQL正在使用NULL更新Varchar列,php,mysql,Php,Mysql,在mysql中,我需要用空值更新Varchar列。我可以使用如下查询: update books set Volume='NULL' WHERE BookId=5457 但它只是用NULL作为字符串更新列 如果我在mysql函数中使用此列数据,它将NULL作为字符串返回,而不是作为实NULL返回。 我的主要问题在于这句话: Select Title,COALESCE(Volume,PackId) From books where BookId=5457 我需要COALESCE来获取第一个
Varchar
列。我可以使用如下查询:
update books set Volume='NULL' WHERE BookId=5457
但它只是用NULL
作为字符串更新列
如果我在mysql函数中使用此列数据,它将NULL
作为字符串返回,而不是作为实NULL
返回。
我的主要问题在于这句话:
Select Title,COALESCE(Volume,PackId) From books where BookId=5457
我需要COALESCE
来获取第一个not null
,如果我使用qoutes运行更新,它不会将realnull
添加到mysql
行,并且COALESCE
无法正常工作并返回卷未打包
是否有特殊的语法来执行此操作?从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
或类似于:
ALTER TABLE `books` ADD `Volume` VARCHAR(25) NOT NULL
正在运行
update books set Volume=NULL WHERE BookId=5457
将导致将realNULL
设置为COALESCE
函数将其理解为NULL
谢谢大家的帮助。您告诉我们要将其视为带引号的字符串。丢失单引号-
更新图书集Volume=NULL,其中BookId=5457
您是对的,我已经这样做了,但是在更新之后,它没有添加到列中。我需要它是真实的NULL
就像列有NULL
作为默认值一样,它被写入NULL
@ganji:你试过QueryTanks吗,但是,COALESCE
需要realNULL
来执行是的……这就是我在查询中设置real NULL的原因。当然我试过了。它没有为字段设置任何内容(我的意思是空)。注意:如果我们在某些类型为INT
的字段中运行相同的查询,它会设置0
,而不是NULL
。我想将realNULL
设置为空。清楚了吗?你需要改变你的桌子。该列可能具有默认值0
。检查列属性。