SQL UPDATE 带有附加字符串 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)

感谢大家。

原文由 Fresheyeball 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 498
2 个回答

这几乎就是您所需要的:

 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 上测试这个

原文由 Marc B 发布,翻译遵循 CC BY-SA 2.5 许可协议

NULL 值转换为空字符串,方法是将其包装在 COALESCE

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

或者

改用 CONCAT_WS

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

原文由 Rohan Khude 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题