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