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

menggunakan CASE dalam klausa WHERE

Anda tidak harus menggunakan CASE...KAPAN, Anda bisa menggunakan kondisi OR, seperti ini:

WHERE
  pw='correct'
  AND (id>=800 OR success=1) 
  AND YEAR(timestamp)=2011

ini berarti jika id<800, keberhasilan harus 1 agar kondisi dapat dievaluasi sebagai benar. Kalau tidak, itu akan menjadi kenyataan.

Ini kurang umum, namun Anda masih bisa menggunakan CASE WHEN, seperti ini:

WHERE
  pw='correct'
  AND CASE WHEN id<800 THEN success=1 ELSE TRUE END 
  AND YEAR(timestamp)=2011

ini berarti:kembalikan success=1 (yang dapat berupa TRUE atau FALSE) jika id<800, atau selalu mengembalikan TRUE sebaliknya.



  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 mengizinkan string kosong untuk integer di MySQL?

  2. Mendapatkan grup berdasarkan jumlah dan jumlah total dalam satu kueri

  3. sql bergabung dengan dua tabel

  4. Bergabunglah dengan beberapa kolom dari satu tabel ke kolom tunggal dari tabel lain

  5. SQL pilih hanya baris dengan nilai maksimal pada kolom