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

MYSQL - समूह से उत्पन्न होने वाले सभी आइटमों के लिए चयन कथन द्वारा फ़ील्ड को कैसे अपडेट करें

क्या आपका मतलब है कि आप उस तालिका को अपडेट करना चाहते हैं जहां फ़ील्ड 1, फ़ील्ड 2 और फ़ील्ड 3 आपके चयन कथन द्वारा लौटाए गए सेट में हैं?

उदाहरण के लिए

update table, 
     ( select field1, field2, field3 
       FROM table WHERE field1= 5  AND field_flag =1 
       GROUP BY field1, field2, field3 limit 1000 ) temp
set table.field_flag = 99 
where table.field1=temp.field1 and table.field2=temp.field2 and table.field3 = temp.field3

ध्यान दें कि अपडेट 1000 से अधिक पंक्तियों को अपडेट कर सकता है।

एक अस्थायी तालिका का भी उपयोग किया जा सकता है:

create temporary table temptab as
select field1, field2, field3 
FROM table WHERE field1= 5  AND field_flag =1 
GROUP BY field1, field2, field3 limit 1000 

 update table, 
        temptab temp
 set table.field_flag = 99 
 where table.field1=temp.field1 and table.field2=temp.field2 and table.field3 = temp.field3

इसका यह फायदा है कि बाद में temptab का उपयोग किया जा सकता है, और यह भी कि अद्यतन को गति देने के लिए अनुक्रमणिका को जोड़ा जा सकता है:

create index on temptab (field1, field2, field3);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql पूर्ण पाठ खोज विफलता

  2. क्या mysql_insert_id उपयोग करने के लिए सुरक्षित है?

  3. MySQL:दृश्य बनाम संग्रहीत कार्यविधियाँ

  4. वर्तमान दिनांक और समय के निकटतम परिणाम दिखाएं (MySQL और PHP)

  5. JDBC4Connection में मेमोरी लीक