Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

मैं MySQL में किसी तालिका की सभी पंक्तियों के माध्यम से कैसे लूप कर सकता हूं?

<घंटा/>

किसी तालिका की सभी पंक्तियों के माध्यम से लूप करने के लिए, MySQL में संग्रहीत कार्यविधि का उपयोग करें। वाक्य रचना इस प्रकार है -

<पूर्व> सीमांकक // अपना प्रक्रिया नाम बनाएं () BEGINDECLARE anyVariableName1 INT DEFAULT 0; किसी भी VariableName2 को डिफ़ॉल्ट 0 घोषित करें; अपने TableName1 से किसी भी VariableName1 में काउंट (*) चुनें; ..N) अपने TableName1 से चुनें (yourColumnName1,...N)किसी भी VariableName2,1 को सीमित करें; AnyVariableName2 =anyVariableName2+1;END WHILE;End;// सेट करें

उपरोक्त सिंटैक्स को समझने के लिए, आइए हम दो टेबल बनाते हैं यानी एक में रिकॉर्ड हैं और दूसरी टेबल में संग्रहित प्रक्रियाओं का उपयोग करके लूप से रिकॉर्ड होंगे।

पहली तालिका बनाने की क्वेरी निम्नलिखित है -

mysql> तालिका बनाएं AllRows -> ( -> Id int, -> Name varchar(100) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.46 सेकंड)

इंसर्ट कमांड का उपयोग करके पहली तालिका में कुछ रिकॉर्ड डालें। क्वेरी इस प्रकार है -

mysql> AllRows मानों (1, 'जॉन') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) mysql> AllRows मानों में डालें (100, 'कैरोल'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.13 सेकंड) )mysql> AllRows मानों (300, 'सैम') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड) mysql> AllRows मानों में डालें (400, 'माइक'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.20 सेकंड) 

चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है -

mysql> AllRows से *चुनें;

आउटपुट

<पूर्व>+----------+----------+| आईडी | नाम |+----------+----------+| 1 | जॉन || 100 | कैरल || 300 | सैम || 400 | माइक | +----------+----------+4 पंक्तियाँ सेट में (0.00 सेकंड)

दूसरी तालिका बनाने की क्वेरी यहां दी गई है। तालिका बनाने की क्वेरी इस प्रकार है -

mysql> तालिका बनाएं SecondTableRows -> ( -> StudentId int, -> StudentName varchar(100) -> );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.54 सेकंड)

अब आप संग्रहीत कार्यविधि का उपयोग करके तालिका की सभी पंक्तियों के माध्यम से लूप कर सकते हैं। संग्रहित प्रक्रिया इस प्रकार है -

mysql> delimiter //mysql> क्रिएट प्रोसेस Sp_AllRowsOfATable() -> BEGIN -> DECLARE lastRows INT DEFAULT 0; -> डिक्लेयर स्टार्टरो इंट डिफॉल्ट 0; -> अंतिम पंक्तियों में AllRows से COUNT(*) चुनें; -> सेट स्टार्टरो =0; -> स्टार्टरो के दौरान -> सेट स्टार्टरो =स्टार्टरो + 1; -> अंत में; -> अंत; ->//क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.22 सेकंड)mysql> सीमांकक;

कॉल कमांड का उपयोग करके संग्रहीत प्रक्रिया को कॉल करें। वाक्य रचना इस प्रकार है -

कॉल yourStoreedProcedureName;

उपरोक्त संग्रहीत प्रक्रिया को पहली तालिका की सभी पंक्तियों के माध्यम से लूप करने के लिए कॉल करें। क्वेरी इस प्रकार है -

mysql> कॉल Sp_AllRowsOfATable();क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.61 सेकंड)

संग्रहीत कार्यविधि को कॉल करने के बाद, आइए देखें कि दूसरी तालिका के साथ क्या हुआ। क्वेरी इस प्रकार है -

mysql> SecondTableRows से StudentId चुनें;

आउटपुट

<पूर्व>+-----------+| छात्र आईडी |+-----------+| 1 || 100 || 300 || 400 |+-----------+4 पंक्तियाँ सेट में (0.00 सेकंड)
  1. किसी तालिका की सभी पंक्तियों को MySQL में किसी अन्य तालिका में कॉपी करें?

    किसी तालिका की सभी पंक्तियों को दूसरी तालिका में कॉपी करने के लिए, नीचे दिए गए सिंटैक्स का उपयोग करें - अपनेTableName2 में डालें(yourColumnName1,...N) अपनेTableName1 से अपना ColumnName1,..N चुनें; आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1(FirstName varchar(100));क्वेरी ओके, 0 पंक्तियाँ प्रभाव

  1. शर्तों के साथ MySQL तालिका में पंक्तियों को कैसे बदलें?

    शर्तों को सेट करने और पंक्तियों को बदलने के लिए, MySQL CASE कथन का उपयोग करें। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.42 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1481 मानों में डालें ( 890);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.09 सेकंड) चयन क

  1. एक MySQL टेबल पर केवल 3 ऑर्डर की गई पंक्तियों का चयन कैसे करें?

    इसके लिए आप LIMIT के साथ ORDER BY क्लॉज का इस्तेमाल कर सकते हैं। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.52 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1551 (कर्मचारी नाम) मान (एडम) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित ( 0.11 सेकंड) चयन क