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

MySQL स्टोर्ड प्रोसीजर से संदेश कैसे प्रदर्शित करें?

IF-ELSE और SELECT CONCAT से शर्तीय संदेश प्रदर्शित करें

स्टोर्ड प्रोसीजर में शर्तों के आधार पर कस्टम संदेश लौटाने के लिए IF-ELSE ब्लॉक के अंदर SELECT CONCAT() का उपयोग करें।

स्टोर्ड प्रोसीजर बनाना

mysql> DELIMITER //
mysql> CREATE PROCEDURE showMessage(value INT, Name VARCHAR(20))
    -> BEGIN
    ->     IF(value > 100) THEN
    ->         SELECT CONCAT("HELLO", " ", Name);
    ->     ELSE
    ->         SELECT CONCAT("BYE", " ", Name);
    ->     END IF;
    -> END //
Query OK, 0 rows affected (0.18 sec)
mysql> DELIMITER ;

केस 1: मान 100 से अधिक

mysql> CALL showMessage(200, 'John');

+--------------------------+
| CONCAT("HELLO"," ",Name) |
+--------------------------+
| HELLO John               |
+--------------------------+

केस 2: मान 100 से कम

mysql> CALL showMessage(10, 'John');

+------------------------+
| CONCAT("BYE"," ",Name) |
+------------------------+
| BYE John               |
+------------------------+

DELIMITER का महत्व

DELIMITER // प्रोसीजर परिभाषा में सेमीकॉलन उपयोग करने के लिए आवश्यक है। अंत में DELIMITER ; से डिफ़ॉल्ट पर वापस आएं।

बेहतर दृष्टिकोण: OUT पैरामीटर

CREATE PROCEDURE showMessage2(
    IN value INT, 
    IN Name VARCHAR(20), 
    OUT message VARCHAR(100)
)
BEGIN
    IF value > 100 THEN
        SET message = CONCAT('HELLO ', Name);
    ELSE
        SET message = CONCAT('BYE ', Name);
    END IF;
END;

-- कॉल करना
CALL showMessage2(200, 'John', @msg);
SELECT @msg;

अन्य उपयोगी पैटर्न

-- SIGNAL से कस्टम त्रुटि
IF value < 0 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Value cannot be negative';
END IF;

-- लॉग टेबल में डालना
INSERT INTO log_table(message) VALUES(CONCAT('User ', Name, ' processed'));
  1. - MySQL स्टोर्ड प्रोसीजर में लागू क्वेरी से डेटाबेस नाम प्राप्त करें?

    डेटाबेस नाम प्राप्त करने के लिए नीचे दिए गए सिंटैक्स का उपयोग करें: select database(); आइए उपरोक्त सिंटैक्स को स्टोर्ड प्रोसीजर में लागू करते हैं: mysql> delimiter // mysql> create procedure get_procedure_database_name() -> begin -> select concat(The database name=,database()); -> en

  1. - MySQL में 'FROM' को कॉलम नाम कैसे बनाएं?

    चूंकि FROM एक आरक्षित शब्द है, इसे कॉलम नाम मानने के लिए बैकटिक्स प्रतीक का उपयोग करें। हम अब FROM आरक्षित शब्द को बैकटिक से घेरकर एक टेबल बनाएंगे: mysql> create table DemoTable1810 ( `from` varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड

  1. - MySQL में स्टोर्ड प्रोसीजर से टेबल रिकॉर्ड कैसे प्रदर्शित करें?

    MySQL में स्टोर्ड प्रोसीजर के अंदर SELECT स्टेटमेंट रखकर टेबल रिकॉर्ड्स प्रदर्शित कर सकते हैं। यह एनकैप्सुलेशन, पुन: उपयोग, और सुरक्षा (टेबल पर सीधे SELECT अधिकार दिए बिना डेटा एक्सेस) के लिए उपयोगी है। उदाहरण: सभी रिकॉर्ड प्रदर्शित करने वाला प्रोसीजर डेमो टेबल बनाएं: mysql> CREATE TABLE DemoT