Mysql
 sql >> Baza danych >  >> RDS >> Mysql

zbiorcze aktualizowanie listy wartości z listy identyfikatorów

Oto jeden ze sposobów na zrobienie tego za pomocą jednego zapytanie. Nie będzie to najładniej sformatowane zapytanie, ale będzie to tylko jedno.

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

Zobacz mój zmodyfikowany SQLFiddle .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepszy sposób na przechowywanie nazwy kategorii z php w tabeli mysql

  2. Kiedy używać MongoDB lub innych systemów baz danych zorientowanych na dokumenty?

  3. Odmowa uprawnień podczas montowania woluminu Docker w OSX

  4. Funkcja MySQL ASIN() – zwraca łuk sinus liczby

  5. mysql dla Pythona 2. 7 mówi, że nie znaleziono Pythona v2.7