MySQL में कॉलम मान के लिए एक स्ट्रिंग को कैसे प्रीपेंड किया जाए?


123

मौजूदा मूल्य के सामने एक स्ट्रिंग "परीक्षण" के साथ सभी पंक्तियों के एक विशेष क्षेत्र को अपडेट करने के लिए मुझे एक एसक्यूएल अपडेट स्टेटमेंट की आवश्यकता है।

उदाहरण के लिए, यदि मौजूदा मान "कोशिश" है, तो इसे "परीक्षण" बनना चाहिए।

जवाबों:


261

ऐसा करने के लिए आप CONCAT फ़ंक्शन का उपयोग कर सकते हैं :

UPDATE tbl SET col=CONCAT('test',col);

यदि आप चतुर बनना चाहते हैं और केवल ऐसे कॉलम अपडेट करें जिनके पास पहले से परीक्षण नहीं है, तो प्रयास करें

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';

16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]

अपडेट टिकट सेट स्टेटस_डेटेल्स = कॉनकट (स्थिति _details, 'abc') जहां टिकट_आईडी / 75108; ERROR 1583 (42000): देशी फ़ंक्शन 'CONCAT' के लिए कॉल में गलत पैरामीटर
निर्मेश खंडेलवाल

9

MySQL में कई स्ट्रिंग अपडेट फ़ंक्शंस इस तरह से काम करते हुए प्रतीत होते हैं: यदि एक तर्क है null, तो कॉन्सेटेशन या अन्य फ़ंक्शन nullभी वापस आ जाते हैं। इसलिए, किसी फ़ील्ड को nullमान के साथ अपडेट करने के लिए , पहले इसे एक गैर-शून्य मान पर सेट करें, जैसे कि''

उदाहरण के लिए:

update table set field='' where field is null;
update table set field=concat(field,' append');

6

यह एक सरल है

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);

WHERE क्लॉज तक ठीक करें, जहां आप केवल टेस्ट से शुरू होने वाले कॉलम को ही कॉनकट टेस्ट करते हैं। तो: foo -> foo footest -> footest testfoo -> testtestfoo
जुक्का Dahlbom

0
  • अद्यतन तालिका_नाम सेट कॉलम 1 = CONCAT ('newtring', table_name.Column1) 1
  • अद्यतन तालिका_नाम सेट कॉलम 1 = CONCAT ('newtring', table_name.Column1) 1
  • अद्यतन तालिका_नाम सेट कॉलम 1 = CONCAT ('newtring', table_name.Column2, 'newtring2') जहाँ 1

हम एक ही कॉलम या तालिका के अन्य कॉलम को भी सम्मिलित कर सकते हैं।

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