2015-12-21 12 views
8

पर विचार करें अद्यतन करने के लिए मैं एक तालिका में 4 स्तंभ और मैंPHP MySQL केवल खाली स्तंभ

TableTest 

Col1 | Col2 | Col3 
D11 | D12 | 
D21 | D22 | 

नीचे की तरह 3 कॉलम के लिए datas है आम तौर पर अद्यतन क्वेरी होगा

Update TableTest SET Col1 = D11 , Col2 = D12 , COL3 = newdata Where Col1= D11 

परिदृश्य है , अद्यतन क्वेरी को केवल COL3 को डेटा धक्का देना चाहिए, इसे कर्नल 1 और Col2 को छोड़ना चाहिए, क्योंकि यह पहले से ही डेटा से भरा हुआ है (भले ही कर्नल 1 और कर्नल 2 के लिए समान या अलग डेटा)

+0

नमूना उदाहरण –

+5

प्रदान तुम सिर्फ तुम सिर्फ कर सकते हैं Col3 अपडेट करना चाहते हैं:

Update TableSet SET COL3=CONCAT('D',CONVERT(Substr(Col2,2),INT)+1) 

इस तालिका में इस प्रकार अपडेट करेगा अन्य कोल्स छोड़ दो, उदाहरण के लिए अद्यतन TableTest SET Col3 = newdata जहां Col1 = D11 – Quantumplate

+0

आप '.... SET Col2 = CASE जब Col2 = '' THEN 'newdata' ELSE Col2 END, ..... 'का उपयोग कर सकते हैं। यह मानता है कि खाली का अर्थ ''' है, अगर शून्य खाली है या उम्मीद है कि आपको 'WHEN' तदनुसार – bansi

उत्तर

11

यह मदद कर सकता है -

UPDATE TableTest a 
INNER JOIN TableTest b ON a.Col1 = b.Col1 
SET a.Col3 = 'newData' 
WHERE a.Col3 IS NULL 

एक ही मेज के साथ एक INNER JOIN इतना है कि यह उचित पंक्ति अपडेट होता है!

+0

मुझे केवल एक ही तरीका पता है कि मैंने अपने जवाब में हिस्सा लिया है यह अच्छा है। – devpro

+0

अद्यतन एक अंदरूनी a.'OD_Order_ID_V' के आधार पर संयोजन fetcheddata ख = b.'OD_Order_ID_V' सेट a.'OD_Online_Listing_ID_V' = 12 कहां a.'OD_Online_Listing_ID_V' शून्य है और a.OD_Order_ID_V = 'CS44189505' fetcheddata; \t यह मुझे अच्छी तरह से मदद नहीं करता –

+0

जांचें कि यह 'NULL' या खाली मान है या नहीं। –

3

बस ऐसा करें, जैसे इस:

Update TableTest SET COL3 = newdata Where Col1= D11 
+1

यह न्यूनतम स्पष्टीकरण के बिना बहुत छोटा है। कृपया इसे पूरा करने के लिए अपने उत्तर पर अधिक टिप्पणियां जोड़ें। –

2

में अद्यतन क्वेरी, वहाँ अगर उन मूल्यों को नहीं बदल रहे हैं col1 और col2 का मूल्य पुन: असाइन करने की कोई जरूरत नहीं है।

UPDATE TableTest 
SET COL3 = newdata 
WHERE Col1= 'D11'; 
6

यदि आप बस अपडेट 3 में अन्य कॉलम शामिल करने के बजाय COL3 को अपडेट करना चाहते हैं।

क्वेरी:

Update TableTest SET COL3 = newdata Where Col1= D11 
4

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

TableTest 

Col1 | Col2 | Col3 
D11 | D12 | D13 
D21 | D22 | D23 
+0

क्या आप समझा सकते हैं कि यह क्या करेगा? –

+0

अगर यह मेरे लिए वास्तव में नया से ठीक काम करेगा। – devpro

+0

मैंने अपना जवाब अपडेट किया है –

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