आप जो पूछ रहे हैं वह अक्सर नहीं किया जाता है, जैसा कि आप आमतौर पर update()
. का उपयोग करते हैं या तो समान मान रखने के लिए बहुत सारे रिकॉर्ड सेट करने के लिए या कई भिन्न मान रखने के लिए एक रिकॉर्ड सेट करने के लिए।
इसके चारों ओर एक तरीका कुल अद्यतन है, इसलिए अपने सरणी का उपयोग करके सभी आईडी प्राप्त करें जहां वर्ष 2011 है, फिर इसे चलाएं:
$where = array();
// This where should contain all the ids that need the year set to 2011
// E.g.
$where[] = array("id" => 3);
$db->update("table_name", array("year" => 2011), $where);
ऐसा करने से यह मानते हुए प्रश्नों की संख्या कम हो जाएगी कि आपके पास एक ही वर्ष में कई पंक्तियाँ हैं। इसके लिए दस्तावेज़ यहां है। ।
या आप एक विधि का उपयोग कर सकते हैं सिंगल-एसक्यूएल-क्वेरी/">इस तरह
ओपी प्रतिक्रिया के बाद संपादित करें
समस्या की प्रकृति का अर्थ है कि इसे प्रभावी ढंग से हल नहीं किया जा सकता है।
आप डेटा के बहुत अलग सेट के साथ डेटा की 3,700 पंक्तियों को अपडेट करने का तरीका पूछ रहे हैं। यदि डेटा के सेट अलग हैं तो ऐसा कोई पैटर्न नहीं है जिसका उपयोग आप इसे प्रभावी बनाने के लिए कर सकें। एक ही वर्ष की पंक्तियों की तरह पैटर्न ढूँढना, और अपने लाभ के लिए उनका उपयोग करने से क्वेरी की गति बढ़ जाएगी लेकिन सरणी मैशिंग के रूप में कुछ दिमागी जुड़ाव की आवश्यकता होगी जैसा कि रेगिलेरो ने नोट किया है।