mySQL

2011-01-21 24 views
6

में टेक्स्ट कॉलम मान को एक पंक्ति से दूसरी पंक्ति में कॉपी करने के लिए कैसे करें मेरे पास तालिका मान वाले कॉलम मान हैं। इस मान में टाइप टेक्स्ट है। मैं आईडी 7 के साथ पंक्ति के मान फ़ील्ड में आईडी 7 के साथ पंक्ति के मान फ़ील्ड मान की प्रतिलिपि बनाना चाहता हूं। क्या आप कृपया यह करने में सहायता कर सकते हैं। मैं एमएस एसक्यूएल जानता हूं, लेकिन मैं अपने एसक्यूएल में नया हूं।mySQL

create table pref 
(
    id int, 
    value text 
) 
+0

क्या आपने एसक्यूएल की कोशिश की है कि आप अभी तक एमएस एसक्यूएल के लिए लिखेंगे? क्या असफल रहा? – sarnold

उत्तर

14

MySQL में आप उसी तालिका से उप-चयन का उपयोग नहीं कर सकते हैं, लेकिन आप एक जॉइन का उपयोग कर सकते हैं।

UPDATE pref AS target 
LEFT JOIN pref AS source ON source.id = 7 
     SET target.value = source.value 
    WHERE target.id = 1; 
+0

यह काम किया, धन्यवाद। – mohang

+1

धन्यवाद। मैं डुप्लिकेट रिकॉर्ड विलय करते समय कई फ़ील्ड अपडेट करना चाहता था और यह उत्तर आसानी से मेरी आवश्यकताओं के अनुरूप था। –

2
UPDATE 
    pref 
SET 
    value = (SELECT value WHERE id = 7) 
WHERE 
    id = 1 
0

मेरे मामले में, मैं एक एन्क्रिप्टेड मूल्य एक ही तालिका में एक और पंक्ति में एक खाली क्षेत्र में एक पंक्ति से कॉपी करने के लिए कोशिश कर रहा था। इस मामले में, मुझे जॉन के पिन को जेन के पिन में कॉपी करने की आवश्यकता थी।

@mohang यह सही है। यहां मेरा अनुकूलन है :)

name pin 

john sdhjduwhdowodw7d87e838g83g8g3of... 
jane  

    //copy from field with value into empty field 

UPDATE my_table AS target 
LEFT JOIN my_table AS source ON source.pin != "" 
SET target.pin = source.pin 
WHERE target.pin = ""; 

    // Hurray, it works! 

name pin 

john sdhjduwhdowodw7d87e838g83g8g3of... 
jane sdhjduwhdowodw7d87e838g83g8g3of...