MySQL #1093 - You can't specify target table 'giveaways' for update in FROM clause

前端 未结 6 993
小蘑菇
小蘑菇 2020-11-28 12:09

I tried:

UPDATE giveaways SET winner = \'1\' WHERE ID = (SELECT MAX(ID) FROM giveaways)

But it gives:

#1093 - Yo

6条回答
  •  难免孤独
    2020-11-28 12:19

    Make use of TEMP TABLE:

    as follows:

    UPDATE TABLE_NAME SET TABLE_NAME.IsActive=TRUE
    WHERE TABLE_NAME.Id IN (
        SELECT Id
        FROM TEMPDATA
    );
    
    CREATE TEMPORARY TABLE TEMPDATA
    SELECT MAX(TABLE_NAME.Id) as Id
    FROM TABLE_NAME
    GROUP BY TABLE_NAME.IncidentId;
    
    SELECT * FROM TEMPDATA;
    
    DROP TABLE TEMPDATA;
    

提交回复
热议问题