Mysql में एक सेल का डेटा बदलें


156

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


अब तक तुमने क्या प्रयास किये हैं? क्या आप अपने द्वारा उपयोग की जा रही क्वेरी को साझा कर सकते हैं? आमतौर पर, आप "सभी मापदंडों को एक कॉलम में" अपडेट नहीं करते हैं
निको हसे

जवाबों:


191

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

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

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

WH1 में हालत कहां हो सकती है = old_value?
weefwefwqg3

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

1
@ ब्रायन हूपर: मुझे मूल्य बदलने की आवश्यकता है, मेरा मतलब है कि क्या मैं यह कर सकता हूँ: UPDATE mytable SET column1 = new_value WHERE column1 = old_value;??
weefwefwqg3

2
@ weefwefwqg3, आह, मैं देख रहा हूं, क्षमा करें, मायोपिया का हमला है। हां, यह पूरी तरह से ठीक होगा।
ब्रायन हूपर

112

मेरा उत्तर दोहरा रहा है कि दूसरों ने पहले क्या कहा है, लेकिन मैंने सोचा कि मैं एक उदाहरण जोड़ूंगा, उपयोग कर रहा हूं 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)

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

आमतौर पर पंक्तियों की प्राथमिक कुंजी, पंक्तियों की विशिष्ट पहचानकर्ता (जो अक्सर आईडी होती है, लेकिन हमेशा नहीं) का उपयोग करना सबसे अच्छा होता है। ईमानदारी से यह इस बात पर निर्भर करता है कि आप क्या करना चाहते हैं जो "सर्वश्रेष्ठ" अभ्यास को परिभाषित करता है
गैरेट गैंग

30

UPDATE आपके द्वारा विशेष रूप से सूचीबद्ध किए गए केवल कॉलम ही बदलेंगे।

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

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

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


11

UPDATE आपके द्वारा निर्दिष्ट मूल्यों में केवल परिवर्तन होता है:

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

9

निम्नलिखित आज़माएँ:

UPDATE TableName SET ValueName=@parameterName WHERE
IdName=@ParameterIdName

कृपया अपने उत्तर में कुछ स्पष्टीकरण जोड़ें, ताकि अन्य लोग इससे सीख सकें - वह क्या करता है @parameterName ?
निको हसे

7

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

उदाहरण:

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

3

इसे इस्तेमाल करे।

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

1
ढेर अतिप्रवाह में आपका स्वागत है! जब भी यह कोड स्निपेट स्वागत योग्य है, और कुछ मदद प्रदान कर सकता है, तो यह बहुत ही बेहतर होगा यदि इसमें एक स्पष्टीकरण शामिल है कि यह प्रश्न को कैसे संबोधित करता है। इसके बिना, आपके उत्तर का शैक्षिक मूल्य बहुत कम है - याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, न कि केवल उस व्यक्ति से जो अब पूछ रहा है! कृपया स्पष्टीकरण जोड़ने के लिए अपने उत्तर को संपादित करें, और इस बात का संकेत दें कि क्या सीमाएँ और मान्यताएँ लागू होती हैं।
टोबी स्पाइट

0

MySQL के कुछ कॉलम में "अपडेट पर" क्लॉज है, देखें:

mysql> SHOW COLUMNS FROM your_table_name;

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


यदि "अपडेट" है, तो यह तालिका के "अतिरिक्त" कॉलम में होगा जो आपको उपरोक्त कमांड को निष्पादित करते समय मिलता है।
जेक_हार्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.