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

Bagaimana cara menggunakan If Then Else dalam kueri pembaruan MySQL?

Saya pikir Anda 99% di sana:

UPDATE table
SET A = IF(A > 20, 20, IF(A < 20 && A > 1, A, 0))
WHERE A IS NOT NULL;

Tambahkan && A > 1 ke pernyataan IF kedua dan kondisi ketiga Anda terpenuhi.

Sunting:

Per komentar @Andre untuk pertanyaan dan saran bahwa IF . bersarang sulit dibaca, Anda juga dapat melakukan ini sebagai beberapa kueri yang tidak melakukan pekerjaan yang tidak perlu dan dapat dibaca:

UPDATE table SET A = 20 WHERE A > 20;
UPDATE table SET A = 0 WHERE A <= 1;

Ketika A adalah NULL, itu tidak akan memenuhi salah satu dari kondisi ini, dan dengan demikian menghilangkan kebutuhan untuk menentukan bahwa A tidak menjadi NULL.

Selanjutnya, tidak perlu kondisi ketiga seperti yang disarankan @Andre. Jika A antara 1 dan 20, akan dibiarkan apa adanya.

Akhirnya, pengaturan A ke 0 di mana A kurang dari atau sama dengan 1 tampaknya tidak biasa. Nilai 1 akan diubah menjadi 0. Jika Anda hanya ingin menetapkan nilai kurang dari 1 (termasuk nilai negatif) ke 0, maka Anda harus menukar < untuk < .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menggunakan Django dengan tabel database readonly lama dengan kunci primer komposit?

  2. cara mendapatkan hitungan yang benar

  3. MySQL PADA KUNCI DUPLICATE - masukkan id terakhir?

  4. hapus semua dari tabel

  5. Ekspor Database MySQL Atau MariaDB