Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel - mettre à jour plusieurs enregistrements avec des valeurs différentes

Cela devrait fonctionner :

$statement = "UPDATE mytable
    SET key = CASE id
        WHEN 1 THEN 'key'
        WHEN 2 THEN 'another_key'
        WHEN 3 THEN 'some_key'
    END,
    value = CASE id
        WHEN 1 THEN 15
        WHEN 2 THEN 25
        WHEN 3 THEN 45
    END
    WHERE id IN (1, 2, 3)
");

DB::statement($statement);

Pensez simplement à créer une requête correcte. S'il s'agit d'un panneau d'administration ou de quelque chose qui ne sera pas exécuté très souvent, j'utiliserais simplement l'itération pour garder les choses simples.