Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
Mysql 更新其他列为空的表_Mysql - Fatal编程技术网

Mysql 更新其他列为空的表

Mysql 更新其他列为空的表,mysql,Mysql,我想在这一点上更新我的表,以便在没有时间戳的情况下设置Destroy时间戳。Destroy时间戳定义为比创建的多5-10天 堕落世界: +------------+---------+ | Created | Destroy | +------------+---------+ | 1515765721 | NULL | | 1515765743 | NULL | | 1515765743 | NULL | | 1515765743 | NULL | | 15157

我想在这一点上更新我的表,以便在没有时间戳的情况下设置
Destroy
时间戳。
Destroy
时间戳定义为比创建的
多5-10天

堕落世界:

+------------+---------+
| Created    | Destroy |
+------------+---------+
| 1515765721 |    NULL |
| 1515765743 |    NULL |
| 1515765743 |    NULL |
| 1515765743 |    NULL |
| 1515765744 |    NULL |
+------------+---------+
我的代码怎么了?

UPDATE decayworld AS a
SET a.Destroy=(SELECT FLOOR (a.Created+RAND()*(864000-432000+1))+432000)
WHERE a.Destroy=(NULL)
;

实际上我得到了
0行受影响

您不能执行
字段=NULL
,而是使用
字段为NULL

请尝试以下代码:

UPDATE decayworld AS a
SET a.Destroy=(SELECT FLOOR (a.Created+RAND()*(864000-432000+1))+432000)
WHERE a.Destroy IS NULL;

如果您想了解有关在mysql中使用NULL值的更多信息:

在mysql中(其他名称),您需要使用IS NULL而不是=NULL,这将等同于false

您需要检查
是否为null

Destroy
列为null时,您的条件变为
null=null
,返回
null
——这不是真的

请尝试以下代码:

select null = null; 
select null is null;

完美:)到时候我接受这个正确答案。
=null
实际上等于
null
,而不是
false
,但结果是一样的。