1

仅当 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
4

0 回答 0