sql >> Databáze >  >> RDS >> Mysql

hromadná aktualizace seznamu hodnot ze seznamu id

Zde je jeden způsob, jak toho dosáhnout pomocí one dotaz. Nebude to nejhezčí naformátovaný dotaz, ale bude jen jeden.

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

Podívejte se na můj upravený SQLFiddle .




  1. Jak MAKETIME() funguje v MariaDB

  2. Používáte pojmenované instance? Otestujte připojení DAC!

  3. Volání uložené procedury s parametrem Out pomocí PDO

  4. Export záznamů do souboru Excel