满足条件时,在同一查询中更新和插入

时间:2016-02-03 18:36:01

标签: mysql insert sql-update inner-join

我想要完成的是尝试更新表格中的列并在满足特定条件时插入另一个表格。

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

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;

这引发了一个错误,这只是一次盲目的尝试。我甚至可能会在这方面得到一些投票,但我真的迷失了所以不得不问

1 个答案:

答案 0 :(得分:1)

只需使用两个查询。首先是更新,第二个是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
;