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

MySQL पर दो नंबरों के बीच एक क्रम चुनें

कुछ इस तरह करना चाहिए:-

SELECT a.Name, GROUP_CONCAT(YEAR(DATE_ADD(a.start_date, INTERVAL b.aNum YEAR))) AS activity_years  
FROM person a
CROSS JOIN (SELECT a.i + b.i * 10 AS aNum FROM integers a, integers b) b
WHERE YEAR(DATE_ADD(a.start_date, INTERVAL b.aNum YEAR)) <= YEAR(a.end_date)
GROUP BY a.Name

यह 0 से 9 के मान के साथ i नामक कॉलम के साथ पूर्णांकों की एक तालिका पर निर्भर करता है। यह 0 से 99 तक की संख्याओं की एक श्रृंखला प्राप्त करने के लिए इसे स्वयं के विरुद्ध जोड़ता है, इसलिए दिनांक सीमाओं के साथ बहुत दूर है।

एक दृश्य में इसका उपयोग करने के लिए उप-चयनों को हटाना

SELECT p.Name, GROUP_CONCAT(YEAR(DATE_ADD(p.start_date, INTERVAL (a.i + b.i * 10) YEAR))) AS activity_years  
FROM person p
CROSS JOIN integers a
CROSS JOIN integers b
WHERE YEAR(DATE_ADD(p.start_date, INTERVAL (a.i + b.i * 10) YEAR)) <= YEAR(p.end_date)
GROUP BY p.Name


  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 COUNT(*) बनाम COUNT(DISTINCT col)

  3. jQuery स्वत:पूर्ण (रिमोट) - उदाहरण

  4. मैसकल व्हेयर ... इन ... एंड व्हेयर ... इन ... केवल उसी इंडेक्स पर मेल खाना चाहिए

  5. मैं Laravel 5 में mysql से XML में डेटा कैसे स्टोर कर सकता हूं?