sql >> Database >  >> RDS >> Mysql

bulksgewijs bijwerken van een lijst met waarden uit een lijst met ID's

Hier is een manier om dit te doen met one vraag. Het zal niet de mooiste opgemaakte zoekopdracht zijn, maar het zal er maar één zijn.

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

Zie mijn gewijzigde SQLFiddle .




  1. Een Oracle-database migreren van AWS EC2 naar AWS RDS, deel 3

  2. Entity Framework 6 met Npgsql

  3. SQL Server SOMMIGE operator uitgelegd

  4. Filter django-query op unicode-tekens 🐲 of 💎 etc