Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MYSQL:कई फ़ील्ड के साथ फ़ील्ड अपडेट करें

जब यह प्रश्न

UPDATE tabex SET field1=CONCAT(tabex.a1,', ',tabex.a2,', ',tabex.a3,', ',tabex.a4,', ',tabex.a5,', ',tabex.a6,', 'tabex.a7,', ',tabex.a8,', ',tabex.a9 );

एक पंक्ति को प्रभावित नहीं करता है, केवल स्पष्टीकरण यह होगा कि तालिका खाली है। यह तालिका में प्रत्येक पंक्ति को अद्यतन करेगा। लेकिन अगर कॉलम में से एक NULL है, तो आपका फील्ड1 कॉलम भी NULL होगा।
इससे बचने के लिए, आपको COALESCE() फ़ंक्शन का उपयोग करना होगा। यह फ़ंक्शन अपने पहले पैरामीटर को लौटाता है जो NULL नहीं है।

UPDATE tabex SET field1=CONCAT(COALESCE(tabex.a1, ''),', ',...);

एक विचार पर मुझे पूछना है, आप ऐसा क्यों करना चाहते हैं। स्तंभों में अल्पविराम से अलग किए गए मान अधिकांश समय एक बुरा विचार होते हैं।

और अंत में, CONCAT_WS() का उपयोग करके आपकी क्वेरी गलत है। फ़ंक्शन नाम में _WS "विभाजक के साथ" के लिए छोटा है, इसलिए पहला पैरामीटर विभाजक है जिसे तब फ़ंक्शन के अन्य मापदंडों के बीच रखा जाता है। तो आपको इसे इस तरह लिखना चाहिए:

UPDATE tabex SET field1=CONCAT_WS(',', tabex.a1, tabex.a2, tabex.a3,...);

CONCAT_WS() फ़ंक्शन का एक अन्य लाभ यह है कि यह NULL मानों की उपेक्षा करता है। मैनुअल में दो कार्यों के बारे में और पढ़ें




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ट्री ट्रैवर्सल एल्गोरिथम के आधार पर इस परिणाम सेट से ट्री व्यू कैसे उत्पन्न करें?

  2. क्या मालिकाना सूर्य के अलावा कोई अच्छा CachedRowSet कार्यान्वयन है?

  3. तिथि के अनुसार आदेश (वर्कर)?

  4. LazyInitializationException आलसी आरंभिक उदाहरण प्राप्त करने का प्रयास कर रहा है

  5. INSERT के साथ एक अतिरिक्त कॉलम मान जोड़ना ... MySQL में चुनें