sql >> Databasteknik >  >> RDS >> Mysql

massuppdatering av en lista med värden från en lista med id

Här är ett sätt att göra detta med ett fråga. Det kommer inte att vara den snyggaste formaterade frågan, men det kommer bara att vara en.

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

Se min modifierade SQLFiddle .




  1. MySQL regexp mycket långsam än liknande

  2. Maven - java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

  3. INFOGA i DB DateTime-sträng

  4. Kan jag sätta ignore_dup_key på för en primärnyckel?