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

MySQL में प्रिपेयर्ड स्टेटमेंट और उपयोगकर्ता वेरिएबल का उपयोग करके रिटर्न मान प्राप्त करना

MySQL स्टोर्ड प्रोसीजर में PREPARE, EXECUTE और उपयोगकर्ता-परिभाषित वेरिएबल (@variable) का उपयोग करके डायनामिक क्वेरी का परिणाम प्राप्त करें।

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

mysql> DELIMITER //
mysql> CREATE PROCEDURE return_value()
    -> BEGIN
    ->     SET @returnQuery = 'SELECT 98 INTO @value';
    ->     PREPARE stmt FROM @returnQuery;
    ->     EXECUTE stmt;
    -> END
    -> //
Query OK, 0 rows affected (0.20 sec)

mysql> DELIMITER ;

प्रोसीजर कॉल करना

mysql> CALL return_value();
Query OK, 1 row affected (0.07 sec)

वेरिएबल मान देखना

mysql> SELECT @value;

आउटपुट

+--------+
| @value |
+--------+
| 98     |
+--------+
1 row in set (0.00 sec)

चरण-दर-चरण:

  1. SET @returnQuery = 'SELECT 98 INTO @value' - डायनामिक SQL स्ट्रिंग बनाता है जो परिणाम को @value में स्टोर करता है
  2. PREPARE stmt FROM @returnQuery - स्ट्रिंग से प्रिपेयर्ड स्टेटमेंट बनाता है
  3. EXECUTE stmt - प्रिपेयर्ड स्टेटमेंट निष्पादित करता है, जो @value सेट करता है
  4. SELECT @value - सत्र वेरिएबल का मान पढ़ता है

व्यावहारिक उपयोग: डायनामिक टेबल नाम, कॉलम नाम, या रनटाइम पर निर्मित जटिल क्वेरी के लिए।

CREATE PROCEDURE get_count(IN table_name VARCHAR(64), OUT cnt INT)
BEGIN
    SET @q = CONCAT('SELECT COUNT(*) INTO @cnt FROM ', table_name);
    PREPARE stmt FROM @q;
    EXECUTE stmt;
    SET cnt = @cnt;
    DEALLOCATE PREPARE stmt;
END

सफाई: DEALLOCATE PREPARE stmt का उपयोग करके प्रिपेयर्ड स्टेटमेंट मुक्त करें (मेमोरी लीक रोकने के लिए)।

  1. - MySQL SELECT स्टेटमेंट में NULL का उपयोग कैसे करें?

    MySQL में NULL की लंबाई 0 होती है। IS NULL से NULL चेक करें, = NULL काम नहीं करता। उदाहरण CREATE TABLE NullWIthSelect (Name VARCHAR(100)); INSERT INTO NullWIthSelect VALUES (John), (Bob), (), (Carol), (), (David), (); SELECT * FROM NullWIthSelect; +-------+ | Name | +-------+ | John | | Bob |

  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर

  1. Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं? Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं?

    Java में PreparedStatement से SELECT क्वेरी निष्पादित करना SELECT क्वेरी के लिए executeQuery() मेथड का उपयोग किया जाता है। सिंटैक्स PreparedStatement pstmt = connection.prepareStatement(query); ResultSet rs = pstmt.executeQuery(); उदाहरण: डेटाबेस में टेबल बनाएं ); डेटा डालें: insert into JavaP