我要完成的工作是在满足特定条件的情况下尝试更新表中的列并插入到另一个表中。

到目前为止,我已经尝试过

UPDATE raffles r SET active = 3 INNER JOIN (INSERT INTO raffles_notifs VALUES (uid,raf_id,type) VALUES (r.uid,r.id,1) ) WHERE r.end_stamp = '123123123' AND wuid = 0;


这引发了错误,这只是一个盲目的尝试。我什至可能对此表示反对,但我真的迷失了,所以不得不问

最佳答案

只需使用两个查询。首先更新,第二次INSERT SELECT

UPDATE
    raffles AS r
SET
    active = 3
WHERE
    r.end_stamp = '123123123'
    AND wuid = 0
;

INSERT INTO raffles_notifs (uid,raf_id,type)
    SELECT r.uid, r.id, 1
    FROM raffles AS r
    WHERE
        r.end_stamp = '123123123'
        AND wuid = 0
;

10-02 19:04