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

Laravel:aggiorna più record con valori diversi

Questo dovrebbe funzionare:

$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);

Pensa a come creare una query corretta. Se è il pannello di amministrazione o qualcosa che verrà eseguito non molto spesso, userei semplicemente l'iterazione per semplificare le cose.