Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql memperbarui beberapa baris, masing-masing dengan nilainya sendiri, dengan pernyataan CASE

Sepertinya Anda sedang mencari sesuatu seperti ini:

UPDATE tbl_accounts
SET nation_id =
     CASE id_account
     WHEN 3 THEN 3331
     WHEN 5 THEN 5551
     ELSE nation_id
     END,
group_id =
     CASE id_account
     WHEN 3 THEN 3332
     WHEN 5 THEN 5552
     ELSE group_id
     END

Tetapi melakukan pembaruan terpisah adalah solusi yang masuk akal dalam situasi ini. Kueri di atas akan memerlukan pemeriksaan setiap baris dalam tabel untuk melihat apakah cocok dengan kondisi. Jika Anda memiliki indeks di id_account (dan mungkin Anda melakukannya seperti yang terlihat sebagai kunci utama) maka akan sangat cepat untuk memperbarui satu baris.

UPDATE tbl_accounts SET nation_id = 3331, groupid = 3332 WHERE id_account = 3
UPDATE tbl_accounts SET nation_id = 5551, groupid = 5552 WHERE id_account = 5



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hapus * dari tabel tidak berfungsi

  2. pencarian sphinx untuk kecocokan kata kunci parsial

  3. Bagaimana cara menghitung total harga pesanan?

  4. Jumlahkan jam dari pelacak waktu ke kalender menurut hari

  5. Variabel 'sql_mode' tidak dapat disetel ke nilai 'NO_AUTO_CREATE_USER'