如果一个字段的值等于NULL
,我试图使用同一记录中另一个字段的值来更新它,但是它不起作用,也不会给我任何错误。我尝试了这两个查询,但它们没有完成工作!
update tracking
inner join ( select `ID`, `start_date` from tracking where `ID` =20212) t2
ON tracking.`ID` = t2.`ID`
SET `design date`="2019-01-19",
`design date original`= IF(`design date original` = NULL,t2.`start_date`, `design date original`)
where tracking.`ID` =20212
'
update tracking
SET `design date`="2019-01-19",
`design date original`= IF(`design date original` = NULL,`start_date`, `design date original`)
where `ID` =20212
答案 0 :(得分:0)
<expr> = NULL
永远不会为真,即使<expr>
为NULL
也是如此。要检查是否有NULL
,请使用IS NULL
:<expr> IS NULL
。if()
。有一个特殊的函数coalesce()
,它从参数列表中返回第一个非空表达式。
UPDATE `tracking`
SET `design date` = '2019-01-19',
`design date original` = coalesce(`design date original`,
`start_date`)
WHERE `ID` = 20212;