Update multiple rows with different values in a single SQL query

前端 未结 6 656
你的背包
你的背包 2020-12-13 09:15

I have a SQLite database with table myTable and columns id, posX, posY. The number of rows changes constantly (might inc

6条回答
  •  -上瘾入骨i
    2020-12-13 10:03

    I could not make @Clockwork-Muse work actually. But I could make this variation work:

    WITH Tmp AS (SELECT * FROM (VALUES (id1, newsPosX1, newPosY1), 
                                       (id2, newsPosX2, newPosY2),
                                       ......................... ,
                                       (idN, newsPosXN, newPosYN)) d(id, px, py))
    
    UPDATE t
    
    SET posX = (SELECT px FROM Tmp WHERE t.id = Tmp.id),
        posY = (SELECT py FROM Tmp WHERE t.id = Tmp.id)
    
    FROM TableToUpdate t
    

    I hope this works for you too!

提交回复
热议问题