Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

atualização em massa de uma lista de valores de uma lista de IDs


Aqui está uma maneira de fazer isso usando um consulta. Não será a consulta formatada mais bonita, mas será apenas uma.
<?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})
";
?>

Veja meu SQLFiddle modificado .