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