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

pada pembaruan kunci duplikat dengan syarat?

Pilihan lain:

INSERT INTO tbl (count, otherID) 
  VALUES (2, 'a') 
ON DUPLICATE KEY UPDATE 
  count = GREATEST(VALUES(count), count) ;

Peringatan: Ini akan gagal jika nilai yang diteruskan untuk count adalah NULL (bukan 2 ). Ini akan memperbarui kolom dengan NULL . Jadi, lebih baik menggunakan IF() atau CASE ayat.

Kecuali Anda lebih suka (itulah keanggunan ...):

ON DUPLICATE KEY UPDATE 
  count = GREATEST(COALESCE(VALUES(count), count), count) ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan MySQL dengan Layanan Heterogen Oracle

  2. MySQL:#126 - File kunci salah untuk tabel

  3. Membuat array menggunakan php rekursif dari mysql

  4. JPA EclipseLink DatabaseException:'tabel foo.SEQUENCE tidak ada'

  5. mysql_num_rows() mengharapkan parameter 1 menjadi sumber daya, diberikan boolean