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

MySQL पहले उपलब्ध सप्ताहांत खोजें

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

यह मेरे द्वारा की गई एक अन्य पोस्ट में संशोधन है यहां

हालांकि मैंने क्वेरी का संदर्भ नहीं बदला, लेकिन मैंने केवल आपकी तालिका से जुड़े कॉलम डाले हैं। मैं समझता हूं कि आप केवल एक स्थल तालिका के खिलाफ जा रहे हैं और मैं भी (वास्तव में)। हालांकि, "जस्टडेट्स" उपनाम को समझने के लिए, यह इनर प्री-क्वेरी किसी भी अन्य टेबल के खिलाफ कार्टेशियन जॉइन करके सभी तिथियों की गतिशील रूप से आबादी वाली तालिका बना रही है .. इस मामले में, आरक्षण की आपकी "स्थल" तालिका (मैंने किया था) अपने वास्तविक तालिका नाम संदर्भ को स्पष्ट रूप से न देखें, इसलिए आपको इसे बदलना होगा)। तो, यह संक्षेप में "आज" से शुरू होने वाली सभी तिथियों की एक तालिका बनाता है और 30 दिनों (सीमा के माध्यम से) के लिए आगे बढ़ता है, लेकिन 40, 50, 300 या जितनी आपको आवश्यकता हो सकती है .. बशर्ते "YourVenueTable" जितने दिनों के लिए आप परीक्षण करना चाहते हैं उतने रिकॉर्ड हैं। (पोस्ट में वही स्पष्टीकरण इससे लिया गया था)। यह परिणाम सेट 30, 40 या हालांकि कई दिनों के लिए पूर्व-फ़िल्टर किया गया है केवल 1-रविवार या 7-शनिवार के सप्ताह के दिए गए दिन के लिए... इसलिए इसे केवल 23 अप्रैल, 24 अप्रैल, अप्रैल का परिणाम सेट वापस करना चाहिए 30, 1 मई, 7 मई, 8 मई, 14 मई, 15 मई, 21 मई, 28 मई, आदि।

तो अब आपके पास उन सभी संभावित दिनों का एक गतिशील रूप से बनाया गया परिणाम सेट है, जिन पर आप आगे बढ़ने पर विचार कर रहे हैं। अब, यह आपकी वास्तविक स्थान आरक्षण तालिका में शामिल हो गया है और केवल उन दिनांकों को वापस करने के लिए फ़िल्टर किया गया है जहां यह उस id_venue के लिए नहीं मिला है जिसके बारे में आप चिंतित हैं। आपके डेटा उदाहरण में यह 23 और 24 अप्रैल को एक मैच ढूंढेगा और उन रिकॉर्ड्स को वापस नहीं करेगा। 30 अप्रैल के साथ भी ... हालांकि, यह पता चलेगा कि प्रीक्वालीफाइंग सूची में रिकॉर्ड जिसमें 1 मई शामिल है, स्थल तालिका में तारीख मिलान नहीं मिलेगा और इस प्रकार इसमें शामिल होगा जैसा कि आप अनुमान लगा रहे हैं ... फिर यह छोड़ना जारी रहेगा मई 7 और 8, फिर 14 मई, 15, 21, 28, आदि को लौटें...

select JustDates.OpenDate
  from 
      ( select
         @r:= date_add( @r, interval 1 day ) OpenDate
      from
         ( select @r := current_date() ) vars,
         Venue 
      LIMIT 30 ) JustDates
   where
      DAYOFWEEK( JustDates.OpenDate ) IN ( 1, 7 )
      AND JustDates.OpenDate NOT IN
          ( select Venue.date
                from Venue
                where Venue.id_venue = IDYouAreInterestedIn
                  and Venue.Date = JustDates.OpenDate )
    order by 
       JustDates.OpenDate

ध्यान दें, और अन्य आरक्षण पोस्टिंग के अनुसार, आरक्षण दिनांक उपलब्धता दिनांक के लिए क्वेरी, जो ऊपर 30 की एक सीमा कर रही है, सिस्टम में कोई भी तालिका हो सकती है, जब तक कि इसमें कम से कम उतने दिन हों जितने आप आरक्षण के लिए आगे देखना चाहते हैं। . यदि आप आगामी वर्ष के लिए सभी उपलब्धता चाहते हैं, तो आप चाहते हैं कि तालिका में 365 रिकॉर्ड काटेशियन परिणाम के लिए उपयोग किया जाए ताकि गतिशील रूप से बनाए गए "दिनांक" रिकॉर्ड के माध्यम से @r साइकिलिंग प्राप्त की जा सके।



  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. मैसकल डाटा बेस में हर महीने एक कॉलम में मूल्य जोड़ें

  3. php . का उपयोग करके छवि को डेटाबेस में अपलोड और संग्रहीत नहीं कर सकता

  4. फ्लश टेबल - एक्सेस अस्वीकृत

  5. sql INSERT के लिए mongodb अनुवाद... चुनें