sql >> Databáze >  >> RDS >> Mysql

Aktualizujte více řádků pomocí několika klauzulí „kde“ pro každý jednotlivý řádek

zkuste to pomocí CASE

Update  MyTable 
SET     value = CASE 
                     WHEN  game_id = 1 AND x = -4 AND y = 8 THEN 1
                     WHEN  game_id = 1 AND x = -3 AND y = 7 THEN 2
                     WHEN  game_id = 2 AND x =  5 AND y = 2 THEN 3
                     ELSE  value 
                END
WHERE   game_ID IN (1,2,3) AND  -- the purpose of this WHERE clause
        x IN (-4, -3, 5) AND    -- is to optimize the query by preventing from
        y IN (8,7,2)            -- performing full table scan.



  1. Odstranění nežádoucího znaku ze sloupce

  2. Jak opravit běžné problémy s databází MySQL?

  3. Odečtěte roky od data v PostgreSQL

  4. změňte výchozí modul mysql na innodb