2010-02-08 11 views
5

मैं एकाधिक मूल्य INSERT के साथ ON DUPLICATE UPDATE का उपयोग कैसे कर सकता हूं?डुप्लिकेट अपडेट पर mysql सशर्त डालने - एकाधिक रिकॉर्ड

INSERT INTO tbl_name 
    (key_id,field1,filed2) 
VALUES 
    (1,2,3), 
    (1,5,6), 
    (1,8,9); 
+0

अपने इच्छित परिणाम क्या है? मैं केवल MySQL प्राप्त कर सकता हूं '(1,5,6) डिप्लिकेट कुंजी अपडेट की अनुमति दें key_id = key_id + 1', लेकिन निष्पादन पर मेरे पास तालिका में केवल एक पंक्ति है, मान: '2, 2, 3'। –

+0

अच्छी तरह से एसक्यूएल एक उदाहरण है लेकिन अपेक्षित परिणाम एक क्वेरी को चलाने के लिए होगा जो नया होगा, अगर एकाधिक मानों के लिए डुप्लिकेट अपडेट करें। इसलिए यदि key_id 1, 3, और 5 पहले ही डीबी में हैं और मैं 2, 3, 4 और 6 के लिए INSERT चलाता हूं। 2,4 और 6 डालना चाहिए और 3 को अपडेट करना चाहिए क्योंकि यह एक डुप्लिकेट –

उत्तर

11

मैं अभी की कोशिश नहीं कर सकते, लेकिन आप manual से इस वाक्य रचना

INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) 
    ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b); 

उपयोग नहीं कर सकते?

लगता अपने वाक्य रचना तो इस प्रकार दिखाई देगा:

INSERT INTO tbl_name 
    (key_id,field1,filed2) 
VALUES 
    (1,2,3), 
    (1,5,6), 
    (1,8,9) 
ON DUPLICATE KEY 
    UPDATE field1=VALUES(field1), field2=VALUES(field2); 
+0

था, मुझे इसे याद करना होगा, thnx –

संबंधित मुद्दे