mysql

2010-06-11 6 views
109

में एक सेल का डेटा बदलें मैं एक MySQL तालिका के केवल एक सेल में डेटा कैसे बदल सकता हूं। मुझे अद्यतन के साथ समस्या है क्योंकि यह कॉलम परिवर्तन में सभी पैरामीटर बनाता है लेकिन मुझे केवल एक ही बदलना है। कैसे?mysql

उत्तर

25

UPDATE केवल आपके द्वारा सूचीबद्ध कॉलम को ही बदलेगा।

UPDATE some_table 
SET field1='Value 1' 
WHERE primary_key = 7; 

WHERE खंड सीमाएं जो पंक्तियां अपडेट की जाती हैं। आम तौर पर आप इसका उपयोग अपनी तालिका की प्राथमिक कुंजी (या आईडी) मान की पहचान के लिए करेंगे, ताकि आप केवल एक पंक्ति अपडेट कर रहे हों।

SET खंड MySQL को बताता है कि कौन से कॉलम अपडेट हैं। आप जितना चाहें उतने या कम कॉलम सूचीबद्ध कर सकते हैं। कोई भी जो आप सूचीबद्ध नहीं करते हैं अपडेट नहीं होगा।

143

आप शायद जो पंक्तियों को अपडेट करना चाहते हैं निर्दिष्ट करने की आवश्यकता ...

UPDATE mytable 
    SET column1 = value1, 
     column2 = value2 
    WHERE key_value = some_value; 
+0

मैं इस जवाब से उलझन में था, यह सोच कर सेट चयनित पंक्तियों को बदलने के लिए, और जहां उन्हें बदल । – Keith

+0

WHERE में स्थिति क्या हो सकती है कॉलम 1 = old_value? – weefwefwqg3

+0

@ weefwefwqg3, हाँ, यह कर सकता है, लेकिन कोई बात नहीं है। यदि आप मूल्य नहीं बदल रहे हैं, तो बस इसे एसईटी भाग से बाहर छोड़ दें। –

5

अद्यतन केवल मूल्यों में परिवर्तन आप

UPDATE table SET cell='new_value' WHERE whatever='somevalue' 
92

मेरा जवाब दोहरा रहा है कि दूसरों से पहले कहा है निर्दिष्ट करते हैं, लेकिन मैंने सोचा कि मैं MySQL का उपयोग करके एक उदाहरण जोड़ूंगा, केवल इसलिए कि पिछले जवाब मेरे लिए थोड़ा सा गूढ़ थे।

आदेश आप एक ही पंक्ति के स्तंभ को अद्यतन करने के उपयोग करने की आवश्यकता के सामान्य रूप:

UPDATE my_table SET my_column='new value' WHERE something='some value'; 

और यहाँ एक उदाहरण है।

पहले

mysql> select aet,port from ae; 
+------------+-------+ 
| aet  | port | 
+------------+-------+ 
| DCM4CHEE01 | 11112 | 
| CDRECORD | 10104 | 
+------------+-------+ 
2 rows in set (0.00 sec) 

बनाना बदलें

mysql> update ae set port='10105' where aet='CDRECORD'; 
Query OK, 1 row affected (0.00 sec) 
Rows matched: 1 Changed: 1 Warnings: 0 

बाद

mysql> select aet,port from ae; 
+------------+-------+ 
| aet  | port | 
+------------+-------+ 
| DCM4CHEE01 | 11112 | 
| CDRECORD | 10105 | 
+------------+-------+ 
2 rows in set (0.00 sec) 
+0

इस प्रदर्शन के लिए धन्यवाद। उपर्युक्त क्वेरी आपके कॉलम एट में सीडीआरकॉर्ड के सभी उदाहरण अपडेट करेगी। हालांकि, किसी विशिष्ट कॉलम में एक विशिष्ट सेल को अपडेट करते समय, कॉलम की आईडी के आधार पर ऐसा करना बेहतर होता है, यानी, जहां आईडी = xx – Mohammed

0

स्तंभों में से कुछ में MySQL एक "अद्यतन पर" खंड है, देखें:

mysql> SHOW COLUMNS FROM your_table_name; 

मैं यह कैसे अद्यतन करने के लिए, लेकिन एक संपादन पोस्ट करेंगे जब मुझे पता यकीन नहीं है।

+0

यदि कोई "अपडेट पर" है तो यह "अतिरिक्त" कॉलम में होगा उपर्युक्त आदेश निष्पादित करते समय आपको प्राप्त तालिका का। –

1

इसे आजमाएं।

UPDATE `database_name`.`table_name` SET `column_name`='value' WHERE `id`='1'; 
+0

स्टैक ओवरफ़्लो में आपका स्वागत है! जबकि इस कोड स्निपेट का स्वागत है, और कुछ मदद प्रदान कर सकता है, यह [अगर यह एक स्पष्टीकरण शामिल है तो बहुत सुधार हुआ है] (// meta.stackexchange.com/q/114762) * कैसे * यह प्रश्न को संबोधित करता है। इसके बिना, आपके उत्तर में बहुत कम शैक्षणिक मूल्य है - याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, न सिर्फ उस व्यक्ति से पूछ रहे हैं! स्पष्टीकरण जोड़ने के लिए कृपया अपना उत्तर संपादित करें, और संकेत दें कि कौन सी सीमाएं और धारणाएं लागू होती हैं। –

1

अद्यतन टेबल<tablename>सेट<COLUMN=VALUE>कहां<CONDITION>

उदाहरण:

UPDATE TABLE teacher SET teacher_name='NSP' WHERE teacher_id='1'