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

एक MySQL संग्रहीत प्रक्रिया के अंदर डायनामिक SQL क्वेरी लागू करें?

<घंटा/>

संग्रहीत कार्यविधि में गतिशील SQL क्वेरी के लिए, PREPARE STATEMENT की अवधारणा का उपयोग करें। आइए पहले एक टेबल बनाएं -

mysql> create table DemoTable2033
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(20)
   -> );
Query OK, 0 rows affected (1.61 sec)

इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें -

mysql> insert into DemoTable2033(Name) values('Chris');
Query OK, 1 row affected (0.85 sec)

mysql> insert into DemoTable2033(Name) values('Bob');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable2033(Name) values('David');
Query OK, 1 row affected (0.24 sec)

mysql> insert into DemoTable2033(Name) values('Mike');
Query OK, 1 row affected (0.12 sec)

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

mysql> select *from DemoTable2033;

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

+----+-------+
| Id | Name  |
+----+-------+
| 1  | Chris |
| 2  | Bob   |
| 3  | David |
| 4  | Mike  |
+----+-------+
4 rows in set (0.00 sec)

संग्रहीत कार्यविधि बनाने और गतिशील SQL को लागू करने के लिए क्वेरी निम्नलिखित है -

mysql> delimiter //
mysql> create procedure dynamic_query()
   -> begin
   -> set @query=concat("select *from DemoTable2033 where Id=3");
   -> prepare st from @query;
   -> execute st;
   -> end
   -> //
Query OK, 0 rows affected (0.13 sec)

mysql> delimiter ;

संग्रहीत कार्यविधि को कॉल करें -

mysql> call dynamic_query();

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

+----+-------+
| Id | Name  |
+----+-------+
| 3  | David |
+----+-------+
1 row in set (0.04 sec)
Query OK, 0 rows affected (0.05 sec)

  1. लागू करें यदि MySQL में संग्रहीत कार्यविधि में कोई और है?

    if-else को लागू करने के लिए, सिंटैक्स इस प्रकार है - यदि आपका कंडीशन है तो yourStatement1; अन्यथा आपका स्टेटमेंट 2; अंत अगर; संग्रहीत कार्यविधि में if-else के लिए उपरोक्त अवधारणा को समझने के लिए, आइए हम एक संग्रहीत कार्यविधि बनाते हैं - सीमांकक; अब आप कॉल कमांड का उपयोग करके संग्रहीत कार्यविधि को

  1. एक पैरामीटर प्राप्त करने के लिए डायनामिक एसक्यूएल और इसे संग्रहीत प्रक्रिया के अंदर बनाई गई नई तालिका के लिए LIKE में उपयोग करें

    इसके लिए तैयार कथन का प्रयोग करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1973 (StudentId int, StudentName varchar(20));क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1973 मानों में डालें (104, जॉन स्मिथ); क्वेरी ठीक है, 1 प

  1. एक MySQL संग्रहीत प्रक्रिया के अंदर डायनामिक SQL क्वेरी लागू करें?

    संग्रहीत कार्यविधि में गतिशील SQL क्वेरी के लिए, PREPARE STATEMENT की अवधारणा का उपयोग करें। आइए पहले एक टेबल बनाएं - mysql> create table DemoTable2033    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> Name varchar(20)    -> ); Que