仅当 offer_period 字段的值大于 NOW() 时,我才需要获取此 UPDATE 查询以将我的“offer_period”字段(日期时间)值更改为 NOW()。问题是,不管这个字段如何,无论如何我都需要更新我的“状态”字段。
因为必须更新状态字段,所以我无法更改 WHERE 子句以包含任何 offer_period 条件,否则如果不满足该条件,状态字段将不会得到更新。
使用下面的查询,ELSE 语句给我带来了问题。如果我省略它,如果不满足 CASE 条件,则 offer_period 字段值将更改为 NULL,这很糟糕,因为我希望它在这些情况下什么都不做。因此,我尝试包含使用现有 offer_period 值更新的 ELSE 条件,但结果显示 0 行受到影响。所以这就是我卡住的地方。
感谢您抽出宝贵的时间。
乔什
UPDATE listings
SET `status`= 'Pending'
, offer_period = CASE
WHEN offer_period > NOW() THEN NOW()
ELSE offer_period
END
WHERE listing_id=1
AND agent_id=1