क्या आपका मतलब है कि आप उस तालिका को अपडेट करना चाहते हैं जहां फ़ील्ड 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);