Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

उत्पन्न करें जहां चर का उपयोग करके बैश में क्लॉज

क्वेरी में मामूली परिवर्तन करना अधिक कुशल होगा - जिससे गतिशील रूप से (समतुल्य) SQL उत्पन्न करना आसान हो जाएगा।

यह 'इन (...)' स्थितियों के लिए परिवर्तनीय लंबाई सूचियों से बचने के लिए "बीच" ऑपरेटर का उपयोग करता है।

1=1 के बारे में टिप्पणी नोट करें, इसे प्रश्न के अनुसार रखा गया है, लेकिन इसकी समीक्षा करने की आवश्यकता है, क्योंकि यह हमेशा शर्त को पारित कर देगा।

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
" 

मेरे पास mysql नहीं है, लेकिन उपरोक्त 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. MySQL में दशमलव विभाजक बदलें

  2. Information_schema.tables पर धीमी क्वेरी

  3. भौगोलिक निकटता की गणना के लिए सूत्र

  4. php mysql सर्वर चला गया

  5. बैश से mysql प्रश्नों को कैसे फीड करें