sql >> Database teknologi >  >> RDS >> Mysql

Opdater flere rækker med flere 'where'-sætninger for hver enkelt række

prøv dette ved at bruge 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. Hvordan sætter jeg en 'if-klausul' i en SQL-streng?

  2. Mysql langsom forespørgsel:INNER JOIN + ORDER BY forårsager filesort

  3. Bedre at bruge markøradapter eller array-adapter

  4. Importer SQL-dump til PostgreSQL-databasen