SQL अनुक्रमित स्ट्रिंग CONCAT के साथ किसी फ़ील्ड में सभी मानों को अपडेट नहीं कर रहा है




mysql concatenation (6)

एक शून्य मूल्य के साथ CONCAT शून्य वापस आता है, तो सबसे आसान समाधान है:

अद्यतन myTable एसईटी स्पेयर = IFNULL (CONCAT (स्पेयर, "स्ट्रिंग"), "स्ट्रिंग")

मैं यही करना चाहता हूं:

वर्तमान तालिका:

+----+-------------+  
| id | data        |  
+----+-------------+  
|  1 | max         |  
|  2 | linda       |  
|  3 | sam         |  
|  4 | henry       |  
+----+-------------+  

रहस्य प्रश्न (कुछ "UPDATE table SET data = CONCAT(data, 'a')" )

परिणामस्वरूप तालिका:

+----+-------------+  
| id | data        |  
+----+-------------+  
|  1 | maxa        |  
|  2 | lindaa      |  
|  3 | sama        |  
|  4 | henrya      |  
+----+-------------+  

बस! मुझे बस एक ही प्रश्न में ऐसा करने की ज़रूरत है, लेकिन ऐसा कोई रास्ता नहीं दिख रहा है। मैं bluehost पर mySQL का उपयोग कर रहा हूँ (मुझे लगता है कि इसका संस्करण 4.1)

सबको धन्यवाद।


Answer #1
UPDATE 
    myTable
SET 
    col = CONCAT( col , "string" )

इसे काम नहीं कर सका। अनुरोध वाक्यविन्यास सही था, लेकिन निष्पादित होने पर "0 लाइन प्रभावित" था।

समाधान था:

UPDATE 
    myTable 
SET 
    col = CONCAT( myTable.col , "string" )

वह काम किया।


Answer #2

तुम यह केर सकते हो:

Update myTable
SET spares = (SELECT CASE WHEN spares IS NULL THEN '' ELSE spares END AS spares WHERE id = 1) + 'some text'
WHERE id = 1

फ़ील्ड = फ़ील्ड + फ़ील्ड शून्य नहीं होने पर काम नहीं करता है।


Answer #3

COALESCE में लपेटकर खाली स्ट्रिंग के साथ NULL मानों को परिवर्तित करें

"UPDATE table SET data = CONCAT(COALESCE(`data`,''), 'a')"

या

इसके बजाय CONCAT_WS उपयोग करें:

"UPDATE table SET data = CONCAT_WS(',',data, 'a')"

Answer #4

आपको बस इतना ही चाहिए:

mysql> select * from t;
+------+-------+
| id   | data  |
+------+-------+
|    1 | max   |
|    2 | linda |
|    3 | sam   |
|    4 | henry |
+------+-------+
4 rows in set (0.02 sec)

mysql> update t set data=concat(data, 'a');
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> select * from t;
+------+--------+
| id   | data   |
+------+--------+
|    1 | maxa   |
|    2 | lindaa |
|    3 | sama   |
|    4 | henrya |
+------+--------+
4 rows in set (0.00 sec)

सुनिश्चित नहीं है कि आपको परेशानी क्यों होगी, हालांकि मैं इसका परीक्षण 5.1.41 पर कर रहा हूं


Answer #5

उसे हल कर लिया। कॉलम को बदल दिया गया वर्णों का एक सीमित सेट था जो इसे स्वीकार करेगा, इसे बदल देगा, और अब क्वेरी ठीक काम करती है।





concat