मैं MySQL में मौजूदा क्षेत्र में एक स्ट्रिंग कैसे जोड़ सकता हूं?


101

मैं अपने सभी रिकॉर्ड पर कोड को अपडेट करना चाहता हूं कि वे वर्तमान में क्या हैं प्लस किसी भी विचार के साथ?

इसलिए उदाहरण के लिए यदि कोड apple_1 और Apple_2 हैं, तो मुझे उन्हें Apple_1_standard और Apple_2_standard होने की आवश्यकता है

इससे पहले:

id   code
------------
1    apple_1 
1    apple_2

Psuedo क्वेरी:

update categories set code = code + "_standard" where id = 1;

अपेक्षित परिणाम:

id   code
----------------------
1    apple_1_standard 
1    apple_2_standard

जवाबों:


224

आपको CONCAT()स्ट्रिंग कॉन्सेटेशन के लिए MySQL में फ़ंक्शन का उपयोग करने की आवश्यकता है :

UPDATE categories SET code = CONCAT(code, '_standard') WHERE id = 1;

61
बस के मामले में किसी ने उसी मुद्दे को चलाया, जैसा कि मैंने किया था: यदि फ़ील्ड codeडिफ़ॉल्ट रूप से NULL है, तो आपको उपयोग करने की आवश्यकता है: UPDATE categories SET code = CONCAT(IFNULL(code,''), '_standard') WHERE id = 1;अन्यथा कॉनकट हमेशा NULL में परिणाम करेगा।
काई नैक

3
वैकल्पिक रूप से आप CONCAT_WS का उपयोग कर सकते हैं जो NULL मानों को छोड़ देता है। उदाहरण के लिए SELECT CONCAT_WS(', ','First name',NULL,'Last Name'); 'प्रथम नाम, अंतिम नाम'
बार्नेस्केल

@ डैनियल ऊपर टिप्पणी के अनुसार उत्तर को अपडेट करने के बारे में कैसे?
kiedysktos

संभावित अशक्त मामले के लिए विशेष / अलग प्रश्न: stackoverflow.com/questions/14020867/…
qdinar

0

पूर्ण URL जोड़ने के लिए छवि फ़ील्ड अपडेट करें, अशक्त फ़ील्डों को अनदेखा कर रहा है:

UPDATE test SET image = CONCAT('https://my-site.com/images/',image) WHERE image IS NOT NULL;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.