sqlmysqlconcatenation

SQL UPDATE all values in a field with appended string CONCAT not working


Here is what I want to do:

current table:

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

Mystery Query ( something like "UPDATE table SET data = CONCAT(data, 'a')" )

resulting table:

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

thats it! I just need to do it in a single query, but can't seem to find a way. I am using mySQL on bluehost (I think its version 4.1)

Thanks everyone.


Solution

  • That's pretty much all you need:

    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)
    

    Not sure why you'd be having trouble, though I am testing this on 5.1.41