Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Massenaktualisierung einer Liste von Werten aus einer Liste von IDs

Hier ist eine Möglichkeit, dies mit one zu tun Anfrage. Es wird nicht die am schönsten formatierte Abfrage sein, aber es wird nur eine sein.

<?php

$id_list = implode(',', $ids);
$whens = implode(
    "\n    ",
    array_map(
        function ($id, $value) {
            return "WHEN {$id} THEN {$value}";
        },
        $ids,
        $values
    )
);

$sql = "
    UPDATE value
    SET value = CASE id
    {$whens}
    END
    WHERE id IN ({$id_list})
";
?>

Siehe mein modifiziertes SQLFiddle .