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

PHP + MySQL में पुनरावर्ती तर्क

प्रत्येक रिकर्सन प्रकार के लिए एक क्वेरी का उपयोग करना, एक साथ संघबद्ध होना।

साप्ताहिक और मासिक रिकर्सन तिथि में जोड़ने के लिए संख्याओं की एक श्रृंखला उत्पन्न करने के लिए कुछ क्रॉस जॉइन किए गए प्रश्नों का उपयोग करते हैं। यह 1000 बार-बार होने वाली नियुक्तियों का मुकाबला करता है, लेकिन आसानी से अधिक तक विस्तारित हो जाता है (यदि नियुक्तियाँ ~ 20 वर्षों से अधिक के लिए दोहराना चाहती हैं)।

SELECT a.appoinemnt_id, a.user_id, a.recur_type, a.date AS appoint_date
FROM tbl_appointment a
WHERE a.recur_type = 0
HAVING appoint_date BETWEEN '2014-07-01' AND '2014-07-31'
UNION
SELECT a.appoinemnt_id, a.user_id, a.recur_type, DATE_ADD(a.date, INTERVAL units.i + tens.i * 10 WEEK) AS appoint_date
FROM tbl_appointment a
CROSS JOIN (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9)units
CROSS JOIN (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9)tens
WHERE a.recur_type = 1
HAVING appoint_date BETWEEN '2014-07-01' AND '2014-07-31'
UNION
SELECT a.appoinemnt_id, a.user_id, a.recur_type, DATE_ADD(a.date, INTERVAL units.i + tens.i * 10 MONTH) AS appoint_date
FROM tbl_appointment a
CROSS JOIN (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9)units
CROSS JOIN (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9)tens
WHERE a.recur_type = 2
HAVING appoint_date BETWEEN '2014-07-01' AND '2014-07-31'

इसके लिए SQL फिडेल यहाँ:-

http://www.sqlfiddle.com/#!2/6346a2/2




  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. मैं एक MySQL डेटाबेस में संग्रहीत छवियों को कैसे प्रदर्शित कर सकता हूं?

  3. क्वेरी कैश दक्षता

  4. हाइबरनेट का उपयोग करके MySql में java.util.Date को जारी रखने में समस्या

  5. जेपीए/हाइबरनेट के साथ शामिल-विरासत विदेशी कुंजी नाम ओवरराइड करें