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

hasilkan klausa where di bash menggunakan variabel

Akan lebih efisien untuk membuat perubahan kecil pada kueri - membuatnya lebih mudah untuk menghasilkan (setara) SQL secara dinamis.

Ini menggunakan operator "antara" untuk menghindari daftar panjang variabel untuk kondisi 'dalam (...)'.

Catatan komentar tentang 1=1, tetap sesuai pertanyaan, tetapi perlu ditinjau, karena akan selalu membuat kondisi lulus.

min_date='2020-06-06'
max_date='2020-06-08'
max_seq_min_date=1
max_seq_max_date=3

echo "
WHERE 1 = 1 or case
    when batch_date = '$min_date' then seq_num between 1 and $max_seq_min_date
    when batch_date = '$max_date' then seq_num between 1 and $max_seq_max_date
    when batch_date between '$min_date' and '$max_date' then seq_num between 1 and 4
    else false
    end
" 

Saya TIDAK memiliki mysql, tetapi cara di atas berfungsi untuk Postgresql.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php tidak menyimpan data ke mysql

  2. Kata sandi tidak memeriksa sensitivitas huruf besar-kecil

  3. MYSQL - Kelompokkan menurut batas

  4. Bagaimana cara menyimpan bidang teks banyak bahasa di mysql dengan php?

  5. Tinjauan Fungsi Jendela Analitik Baru di MySQL 8.0