Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL正在使用NULL更新Varchar列_Php_Mysql - Fatal编程技术网

Php MySQL正在使用NULL更新Varchar列

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来获取第一个

在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
来获取第一个
not null
,如果我使用qoutes运行更新,它不会将real
null
添加到
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
将导致将real
NULL
设置为
COALESCE
函数将其理解为
NULL


谢谢大家的帮助。

您告诉我们要将其视为带引号的字符串。丢失单引号-
更新图书集Volume=NULL,其中BookId=5457
您是对的,我已经这样做了,但是在更新之后,它没有添加到列中。我需要它是真实的
NULL
就像列有
NULL
作为默认值一样,它被写入
NULL
@ganji:你试过QueryTanks吗,但是,
COALESCE
需要real
NULL
来执行是的……这就是我在查询中设置real NULL的原因。当然我试过了。它没有为字段设置任何内容(我的意思是空)。注意:如果我们在某些类型为
INT
的字段中运行相同的查询,它会设置
0
,而不是
NULL
。我想将real
NULL
设置为空。清楚了吗?你需要改变你的桌子。该列可能具有默认值
0
。检查列属性。