mysql: select, insert, delete and update in one query

后端 未结 4 1865
一个人的身影
一个人的身影 2020-12-21 09:46

i need in one query use select, insert, delete and update.

(I need copy data from old table in to new, then delete old, and update another).

Insert and selec

4条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-21 10:10

    MySQL does not support MERGE, so you'll have to do it in two queries:

    INSERT
    INTO    news_n (id, data)
    SELECT  id, data
    FROM    news
    WHERE   id > 21
    ON DUPLICATE KEY UPDATE
    SET     data = news.data
    
    DELETE
    FROM    news_n
    WHERE   id NOT IN
            (
            SELECT  id
            FROM    news
            WHERE   id > 21
            )
    

    , provided you have PRIMARY KEY (id) in both tables.

提交回复
热议问题