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

MySQL स्टोर्ड प्रोसीजर का आउटपुट कैसे दबाएं (सप्रेस करें)?


यूजर-डिफाइंड वेरिएबल से आउटपुट कैप्चर करें

MySQL स्टोर्ड प्रोसीजर डिफ़ॉल्ट रूप से परिणाम सेट लौटाता है। आउटपुट दबाकर वेरिएबल में स्टोर करने के लिए सेशन वेरिएबल (@var) का उपयोग करें।

उदाहरण

टेबल बनाएं:

mysql> CREATE TABLE person_information (
    -> Id INT, Name VARCHAR(20)
    -> );
mysql> INSERT INTO person_information VALUES(100, 'John'), (101, 'Chris'), (102, 'Robert');

आउटपुट सप्रेस करने वाला प्रोसीजर बनाएं

mysql> DELIMITER //
mysql> CREATE PROCEDURE sp_suppressOutputDemo()
    -> BEGIN
    ->     SET @output = (SELECT Name FROM person_information WHERE Id = 101);
    -> END //
mysql> DELIMITER ;

प्रोसीजर कॉल करें

mysql> CALL sp_suppressOutputDemo();

आउटपुट: Query OK, 0 rows affected (0.00 sec) - कोई परिणाम सेट नहीं दिखता।

वेरिएबल से मान प्राप्त करें

mysql> SELECT @output;

परिणाम:

+---------+
| @output |
+---------+
| Chris   |
+---------+

मुख्य बिंदु

  • SET @var = (SELECT ...) - सबक्वेरी का परिणाम वेरिएबल में स्टोर करता है
  • प्रोसीजर में SELECT बिना INTO के परिणाम सेट लौटाता है
  • SELECT ... INTO @var भी उपयोग कर सकते हैं
  • वेरिएबल नाम @ से शुरू होना चाहिए (सेशन वेरिएबल)

वैकल्पिक: INTO क्लॉज

CREATE PROCEDURE sp_getName()
BEGIN
    SELECT Name INTO @output FROM person_information WHERE Id = 101;
END

उपयोग केस: प्रोसीजर को केवल आंतरिक गणना के लिए उपयोग करना, परिणाम एप्लिकेशन लेयर में प्रोसेस करना।

  1. - MySQL स्टोर्ड प्रोसीजर में 5 रैंडम नंबर कैसे जनरेट करें?

    MySQL स्टोर्ड प्रोसीजर में ORDER BY RAND() का उपयोग करके रैंडम नंबर जनरेट करना MySQL में रैंडम नंबर जनरेट करने के लिए ORDER BY RAND() फ़ंक्शन का उपयोग किया जाता है। यहाँ हम एक स्टोर्ड प्रोसीजर बनाकर 5 रैंडम नंबर जनरेट करेंगे। उदाहरण के साथ पूर्ण कार्यान्वयन आइए पहले एक टेबल बनाते हैं: CREATE TABLE

  1. - MySQL स्टोर्ड प्रोसीजर में शर्तों (IF-ELSE) को सही तरीके से कैसे लागू करें?

    MySQL स्टोर्ड प्रोसीजर में सशर्त तर्क (Conditional Logic) लागू करने के लिए IF-THEN-ELSE स्टेटमेंट का उपयोग किया जाता है। सही सिंटैक्स और डिलिमिटर का ध्यान रखना महत्वपूर्ण है। सही सिंटैक्स DELIMITER // CREATE PROCEDURE procedure_name(IN param_name INT) BEGIN IF condition THEN statement1;

  1. - MySQL स्टोर्ड प्रोसीजर में DELIMITER का सही उपयोग कैसे करें?

    MySQL स्टोर्ड प्रोसीजर बनाते समय DELIMITER का सही उपयोग आवश्यक है क्योंकि प्रोसीजर बॉडी में सेमीकॉलन (;) होते हैं जो डिफ़ॉल्ट स्टेटमेंट टर्मिनेटर हैं। सही सिंटैक्स DELIMITER // CREATE PROCEDURE procedure_name() BEGIN IF condition THEN statement1; ELSE statement2; END IF;