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

MySQL में UPDATE के साथ सबक्वेरी (SELECT) का उपयोग कैसे करें?

MySQL में UPDATE स्टेटमेंट के WHERE क्लॉज में सबक्वेरी का उपयोग करके अन्य तालिका या शर्त के आधार पर पंक्तियों को अपडेट किया जा सकता है।

सिंटैक्स

UPDATE table_name
SET column = value
WHERE column IN (SELECT ... FROM ...);

उदाहरण

तालिका बनाएं:

mysql> CREATE TABLE DemoTable (Id INT, Name VARCHAR(20));
mysql> INSERT INTO DemoTable VALUES (100, 'Chris'), (250, 'David'), (150, 'Mike');

डेटा

+------+-------+
| Id   | Name  |
+------+-------+
|  100 | Chris |
|  250 | David |
|  150 | Mike  |
+------+-------+

क्वेरी: अधिकतम ID वाली पंक्ति अपडेट करें

mysql> UPDATE DemoTable
    -> SET Name = 'Robert'
    -> WHERE Id IN (
    ->     SELECT * FROM (SELECT MAX(Id) FROM DemoTable) AS tbl1
    -> );

परिणाम

+------+--------+
| Id   | Name   |
+------+--------+
|  100 | Chris  |
|  250 | Robert |
|  150 | Mike   |
+------+--------+

व्याख्या

  1. SELECT MAX(Id) FROM DemoTable → 250
  2. SELECT * FROM (...) AS tbl1 - डिराइव्ड टेबल (MySQL आवश्यकता)
  3. WHERE Id IN (250) - Id=250 वाली पंक्ति अपडेट होती है

महत्वपूर्ण: MySQL सबक्वेरी प्रतिबंध

MySQL उसी तालिका को अपडेट करते समय सीधे सबक्वेरी में संदर्भित करने की अनुमति नहीं देता। समाधान: डिराइव्ड टेबल (उपनाम के साथ) उपयोग करें।

अन्य पैटर्न

  • WHERE Id = (SELECT MAX(Id) FROM DemoTable) - स्केलर सबक्वेरी
  • JOIN के साथ अपडेट (बहु-तालिका):
    UPDATE t1 JOIN t2 ON t1.id = t2.id SET t1.col = t2.val;

सुरक्षा जांच

-- पहले SELECT से पुष्टि करें
SELECT * FROM DemoTable WHERE Id = (SELECT MAX(Id) FROM DemoTable);
  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

  1. - C# में व्हाइल लूप में ब्रेक स्टेटमेंट का उपयोग कैसे करें

    ब्रेक स्टेटमेंट लूप को समाप्त करता है और लूप के तुरंत बाद वाले स्टेटमेंट पर निष्पादन स्थानांतरित करता है। जब लूप के अंदर ब्रेक स्टेटमेंट का सामना होता है, तो लूप तुरंत समाप्त हो जाता है और प्रोग्राम नियंत्रण लूप के बाद वाले अगले स्टेटमेंट पर फिर से शुरू होता है। आइए व्हाइल लूप में ब्रेक स्टेटमेंट क

  1. - Python में MySQL का उपयोग करके IF स्टेटमेंट का उपयोग करना

    IF स्टेटमेंट पायथन में एक सशर्त स्टेटमेंट है। यह किसी विशेष स्थिति की जांच करता है और तदनुसार कुछ कार्रवाई करता है। यहां, हम Python का उपयोग करके SQL डेटाबेस के साथ इंटरैक्ट करने के लिए IF स्टेटमेंट के उपयोग पर चर्चा करेंगे। सिंटैक्स IF(condition, value_if_true, value_if_false) IF स्टेटमेंट का उप