sql >> Base de Datos >  >> RDS >> Mysql

actualización masiva de una lista de valores de una lista de ID

Aquí hay una forma de hacer esto usando one consulta. No será la consulta con el formato más bonito, pero será solo una.

<?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})
";
?>

Ver mi SQLFiddle modificado .