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

एसक्यूएल यह जांचने के लिए कि तारीखों के बीच कमरा उपलब्ध है या नहीं

यह आपके विशेष प्रश्न का उत्तर हां या ना में देगा। मुझे यकीन नहीं है कि यह उपयोगी है क्योंकि हार्ड-कोडेड सूची में दिनांक खोज मान सभी विशिष्ट हैं।

select coalesce(max('no'), 'yes') as available
from tbl t           
where room_type_id = 23 and
    dt in ("2018-03-06 00:00:00", "2018-03-07 00:00:00", 
           "2018-03-08 00:00:00", "2018-03-09 00:00:00");

यदि आपके तर्क का अर्थ कम से कम एक खुला खोजने का है तारीख तो आप कुछ इस तरह की कोशिश कर सकते हैं:

select case when count(*) = 4 then 1 else 0 end as whatever_this_means
from tbl t
where room_type_id = 23 and
    dt in ("2018-03-06 00:00:00", "2018-03-07 00:00:00", 
           "2018-03-08 00:00:00", "2018-03-09 00:00:00");

समस्या यह होने जा रही है कि आपने अब मान 4 को हार्ड-कोड किया है जो बाद में क्वेरी में सूची में तिथियों की संख्या से जुड़ा हुआ है। इसे और अधिक गतिशील रूप से संभालने के तरीके हैं लेकिन यह आपके प्रश्न से पूरी तरह स्पष्ट नहीं है कि ऐसा करने का सबसे अच्छा तरीका क्या है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक पंक्ति से कई कॉलम पुनर्प्राप्त करें

  2. कीवर्ड युक्त स्ट्रिंग का उपयोग करके PHP में MySQL पूर्ण टेक्स्ट खोज

  3. MySQL उपयोगकर्ता को लॉगिन नहीं करने देगा:त्रुटि 1524

  4. MySQL क्वेरी में शामिल हों

  5. MySQL में varchar की अधिकतम सीमा क्या है?