sql >> Database teknologi >  >> RDS >> Mysql

masseopdatering af en liste over værdier fra en liste over id'er

Her er en måde at gøre dette ved at bruge one forespørgsel. Det vil ikke være den smukkeste formaterede forespørgsel, men det vil kun være én.

<?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 ændrede SQLFiddle .




  1. Hvordan indstilles forespørgselsparametre i MySQL Query Browser?

  2. Forskelle mellem DATA INFILE og LOAD DATA LOCAL INFILE

  3. Lagret procedure, der eksporterer data til csv-filer, eksporterer kun til én fil

  4. Sådan laver du et vækstbabydiagram med data i mysql + PDO