只有当offer_period字段的值大于NOW()时,我才需要获取此UPDATE查询以将我的“offer_period”字段(日期时间)值更改为NOW()。问题是,无论这个领域如何,我都需要更新我的“状态”字段。
由于必须更新状态字段,因此我无法更改WHERE子句以包含任何offer_period条件,或者如果不满足该条件,则状态字段将不会获得更新。
使用以下查询,ELSE语句导致我出现问题。如果我省略它,如果不满足CASE条件,则offer_period字段值将更改为NULL,这是不好的,因为我希望它在这些实例中不执行任何操作。所以我尝试将ELSE条件包含在现有的offer_period值中进行更新,但结果表明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