क्वेरी में मामूली परिवर्तन करना अधिक कुशल होगा - जिससे गतिशील रूप से (समतुल्य) 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 के लिए काम करता है।