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
,但结果是一样的。