Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL - चुनें फिर अद्यतन करें

बस UPDATE जब आप SELECT उसी समय।

इसे बदलें:

SELECT product_name, sku, qty 
FROM supplier_dropship_items 
WHERE supplier_id = '3' AND status = '2';

इसके लिए:

UPDATE supplier_dropship_items as t, 
(
    SELECT id, product_name, sku, qty 
    FROM supplier_dropship_items 
    WHERE supplier_id = '3' AND status = '2'
) as temp
SET status = '1' WHERE temp.ID = t.ID;

यह मान रहा है कि आपकी तालिका के अंदर एक आईडी कॉलम है क्योंकि इसे इस तरह से सेट किया जाना चाहिए और कोई भी सामान्यीकृत तालिका कैसी दिखेगी।

संपादित करें

यहाँ एक इस सिंटैक्स पर दस्तावेज़ीकरण के लिए लिंक है

अनिवार्य रूप से यह जो कर रहा है वह उस तालिका को अद्यतन करने का प्रयास करते समय है जिसे हम यहां t . के रूप में अलियासिंग कर रहे हैं , आप एक साथ एक चयन कथन चलाते हैं।
यह चयन कथन एक परिणाम तालिका लौटा रहा है जिसे हम temp . नाम से उपनाम देते हैं .
तो अब कल्पना करें कि आपके चयन कथन का परिणाम temp . के अंदर है , जबकि आप जिस पूरी तालिका को अपडेट कर रहे हैं वह t . के अंदर है .
अंत में आप status को अपडेट करते हैं 1 . के लिए फ़ील्ड जहां ID के (इन दो उपनाम परिणाम सेट पर) मिलान



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump - जहां क्लॉज काम नहीं कर रहा है

  2. मैं MySQL में अल्पविराम से अलग संख्याओं के दो तारों को कैसे मर्ज कर सकता हूं?

  3. जाँच कर रहा है कि mysql_query ने कुछ लौटाया है या नहीं

  4. '/var/run/mysqld/mysqld.sock' से कनेक्ट नहीं हो सकता

  5. डेटाबेस, टेबल, कॉलम के संयोजन को कैसे बदलें?