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

MySQL secara kondisional UPDATE nilai kolom boolean baris berdasarkan daftar putih id

Apakah Anda tidak lupa untuk melakukan "ELSE" dalam pernyataan kasus?

UPDATE my_table
    SET field = CASE
        WHEN id IN (/* true ids */) THEN TRUE
        WHEN id IN (/* false ids */) THEN FALSE
        ELSE field=field 
    END

Tanpa LAINNYA, saya menganggap rantai evaluasi berhenti pada KAPAN terakhir dan menjalankan pembaruan itu. Juga, Anda tidak membatasi baris yang Anda coba perbarui; jika Anda tidak melakukan LAINNYA, Anda setidaknya harus memberi tahu pembaruan untuk hanya memperbarui baris yang Anda inginkan dan tidak semua baris (seperti yang Anda lakukan). Lihat klausa WHERE di bawah ini:

  UPDATE my_table
        SET field = CASE
            WHEN id IN (/* true ids */) THEN TRUE
            WHEN id IN (/* false ids */) THEN FALSE
        END
  WHERE id in (true ids + false_ids)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengunggah gambar di CKEditor tanpa menggunakan plugin

  2. LPAD dengan nol di depan

  3. Tampilan Daftar admin Django + ForeignKey =Daftar Ubah Kosong

  4. Pilih dari beberapa tabel dengan pembuat kueri lancar laravel

  5. Bagaimana cara mengekstrak kata ke-n dan menghitung kemunculan kata dalam string MySQL?