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

MySQL सभी बच्चों को गिनता है चाहे कितने भी हों

(नेस्टेड लूप / प्रश्नों के लिए कई दृष्टिकोण हैं .. एक संरचना परिवर्तन विचार एक अलग तालिका होगी जो प्रत्येक श्रेणी के सभी बच्चों को सूचीबद्ध करती है .. और सुनिश्चित करें कि इसमें न केवल तत्काल बच्चे हैं, इसमें उप भी है -बच्चे और उप-उप-बच्चे ... जैसे 1 के बच्चे 2 हैं, 2 के बच्चे 3 हैं, 1 के बच्चे 3 हैं, 3 के बच्चे 5 हैं, 1 के बच्चे हैं 5. आदि ..) लेकिन, वर्तमान स्थिति के लिए ..

एक लूप संरचना हो सकती है:

परिणामसेट प्रारंभ करें। ||सभी श्रेणी आईडी के लिए क्वेरी जहां माता-पिता =0। || प्रत्येक को सरणी (X) में जोड़ें। ||परिणाम बंद करें।

सरणी (X) में प्रत्येक आईडी के लिए:

  • एक नया गणना चर (z) स्थापित करें।
  • एक नया चाइल्ड आईडी ऐरे (Y) स्थापित करें।

  • परिणामसेट प्रारंभ करें। ||श्रेणी के साथ सभी मदों के लिए क्वेरी गणना * =वर्तमान आईडी x || गिनती चर (जेड) में जोड़ें ||परिणाम बंद करें।

  • परिणामसेट प्रारंभ करें। ||सभी श्रेणी आईडी के लिए क्वेरी जहां माता-पिता =वर्तमान आईडी x || सभी को चाइल्ड आईडी सरणी (वाई) में जोड़ें। ||परिणाम बंद करें।

  • जबकि चाइल्ड ऐरे (Y) लंबाई> 0

    • श्रेणी आईडी y =सरणी में पहला आइटम (Y)

    • परिणामसेट प्रारंभ करें। ||सभी श्रेणी आईडी के लिए क्वेरी जहां माता-पिता =वर्तमान आईडी y। ||सभी को चाइल्ड आईडी ऐरे (Y) में जोड़ें। ||परिणाम बंद करें।

    • परिणामसेट प्रारंभ करें। ||श्रेणी के साथ सभी मदों के लिए क्वेरी गणना * =वर्तमान आईडी y || गणना चर (z) में जोड़ें ||परिणाम बंद करें।

    • सरणी से पहला आइटम निकालें (Y)

  • लूप के दौरान जारी रखें

  • इस बिंदु पर आपके पास श्रेणी id x के लिए अंतिम आइटम गणना (z) है... इसके साथ कुछ करें, फिर लूप के लिए जारी रखें

लूप के लिए समाप्त करें




  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. किसी स्थिति में दो फ़ील्ड/कॉलम की तुलना कैसे करें?

  3. C# कोड का उपयोग करके MySql डेटाबेस में डेटटाइम कैसे डालें?

  4. एक फॉर्म में इनपुट की सरणी के माध्यम से कैसे लूप करें?

  5. पीडीओ lastInsertId लेनदेन पर काम नहीं करता है?