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

MySQL पुनरावर्ती CTE तालिका मौजूद नहीं है

आपके पुनरावर्ती CTE की संरचना बंद है, और संघ का ऊपरी आधा भाग एक बीज आधार मामला होना चाहिए। फिर, पुनरावर्ती भाग को पिछले आने वाले मान में एक दिन जोड़ना चाहिए:

WITH RECURSIVE cte (n, dt) AS (
    SELECT 1, '2019-09-20'
    UNION ALL
    SELECT n + 1, TIMESTAMPADD(DAY, n, '2019-09-20') FROM cte WHERE n <= 5
)

SELECT * FROM cte;

डेमो

ध्यान दें, हम उपयोग करते हैं TIMESTAMPADD() INTERVAL . की समस्या को हल करने के लिए यहां अभिव्यक्ति, जो वास्तव में एक चर नहीं ले सकती।

यदि आप अपनी तालिका में से और मानों से मेल खाने वाली तिथियों की एक श्रृंखला उत्पन्न करने के लिए इस दृष्टिकोण का उपयोग करना चाहते हैं, तो आप शामिल होने का प्रयास कर सकते हैं:

SELECT
    t1.dt
FROM cte t1
INNER JOIN yourTable t2
    ON t1.dt BETWEEN t2.from_date AND t2.to_date;

जब इस तरह उपयोग किया जाता है, तो पुनरावर्ती CTE एक कैलेंडर . के रूप में कार्य कर रहा होता है टेबल।




  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 और Ajax के साथ MySQL डेटाबेस तालिका में प्रपत्र डेटा कैसे सम्मिलित करें?

  3. मैसकल:डीबी को स्थानीय समय से यूटीसी में बदलें

  4. MySQL कार्यक्षेत्र विकल्प - ClusterControl कॉन्फ़िगरेशन प्रबंधन

  5. फॉर्म सत्यापन