MySQL में एकाधिक अपडेट

मुझे पता है कि आप एक साथ कई पंक्तियों को सम्मिलित कर सकते हैं, क्या MySQL में एक साथ कई पंक्तियों को अपडेट करने का कोई तरीका है (जैसा कि एक प्रश्न में)?

संपादित करें: उदाहरण के लिए मेरे पास निम्नलिखित है

Name   id  Col1  Col2
Row1   1    6     1
Row2   2    2     3
Row3   3    9     5
Row4   4    16    8

मैं निम्नलिखित सभी अद्यतनों को एक प्रश्न में जोड़ना चाहता हूं

UPDATE table SET Col1 = 1 WHERE id = 1;
UPDATE table SET Col1 = 2 WHERE id = 2;
UPDATE table SET Col2 = 3 WHERE id = 3;
UPDATE table SET Col1 = 10 WHERE id = 4;
UPDATE table SET Col2 = 12 WHERE id = 4;
0
जोड़ा संपादित
विचारों: 1

5 उत्तर

आप अपडेट पर जुड़ने का भी उपयोग करने में रुचि ले सकते हैं, जो भी संभव है।

Update someTable Set someValue = 4 From someTable s Inner Join anotherTable a on s.id = a.id Where a.id = 4
-- Only updates someValue in someTable who has a foreign key on anotherTable with a value of 4.

संपादित करें: यदि आप जिन मानों को अपडेट कर रहे हैं वे डेटाबेस में कहीं और नहीं आ रहे हैं, तो आपको कई अपडेट क्वेरी जारी करने की आवश्यकता होगी।

0
जोड़ा
UPDATE table1, table2 SET table1.col1='value', table2.col1='value' WHERE table1.col3='567' AND table2.col6='567'

यह तुम्हारे लिए काम करना चाहिए।

कई तालिकाओं के लिए MySQL मैन्युअल में एक संदर्भ है।

0
जोड़ा
UPDATE tableName SET col1='000' WHERE id='3' OR id='5'

यह जो आप खोज रहे हैं उसे प्राप्त करना चाहिए। बस और आईडी जोड़ें। मैंने इसका परीक्षण किया है।

0
जोड़ा

हां, यह संभव है - आप INSERT का उपयोग कर सकते हैं ... डिप्लिकेट कुंजी अपडेट पर।

अपने उदाहरण का प्रयोग करना:

INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);
0
जोड़ा
यदि कोई डुप्लिकेट नहीं है तो मैं नहीं चाहता कि वह पंक्ति डाली जाए। आईडी क्या करना चाहिए? क्योंकि मैं दूसरी साइट से जानकारी प्राप्त कर रहा हूं जो आईडी के साथ तालिकाओं को बनाए रखता है। मैं उस आईडी के संबंध में मूल्य डाल रहा हूं। यदि साइट के नए रिकॉर्ड हैं तो मैं केवल अन्य आईडी को छोड़कर केवल आईडी और गिनती को समाप्त कर दूंगा। अगर और केवल आईडी के लिए कोई प्रविष्टि है तो इसे छोड़ना चाहिए और इसे छोड़ना चाहिए। मैं क्या करूँ?
जोड़ा लेखक Jayapal Chandran, स्रोत
इसलिए यदि यह स्किप नल में डालने जैसा है या डुप्लिकेट अपडेट पर खाली छोड़ें ... तो यह अच्छा होगा।
जोड़ा लेखक Jayapal Chandran, स्रोत

निम्नलिखित एक पंक्ति में सभी पंक्तियों को अद्यतन करेगा

Update Table Set
Column1 = 'New Value'

अगला सभी उन पंक्तियों को अपडेट करेगा जहां कॉलम 2 का मान 5 से अधिक है

Update Table Set
Column1 = 'New Value'
Where
Column2 > 5

एक से अधिक टेबल अपडेट करने के सभी Unkwntech का उदाहरण है

UPDATE table1, table2 SET
table1.col1 = 'value',
table2.col1 = 'value'
WHERE
table1.col3 = '567'
AND table2.col6='567'
0
जोड़ा