如何将更多字符串数据添加到现有(已填充)列

时间:2014-06-12 16:28:38

标签: mysql sql

e.g。

表A(id - 自动增量)

id  labels        names
1   a1,a3,b4      a1
2   a2,b5         a2
3   a1,b4         a2

我想要的是更新names列,例如" existing_names_data +',B'"其中标签如%b4%

我知道以下查询适用于整数而不是字符串,但我试过并且失败了 -

update TableA set names=names+ " B" where labels like '%b4%'

字符串是否有此类查询? 或者,我该怎么做才能获得所需的输出?

所需输出

id  labels        names
1   a1,a3,b4      a1, B
2   a2,b5         a2
3   a1,b4         a2, B

感谢。的问候,

2 个答案:

答案 0 :(得分:1)

使用CONCAT()功能:

UPDATE foo SET bar = CONCAT(bar, ' B') WHERE foobar = 'barfoo';

..说,你应该真的只使用不同的关系表并规范化你的数据而不是添加逗号/分号/空格分隔列。

考虑以下结构:

messages

  • id
  • name

message_labels

  • id
  • message_idJOIN message_labels ON message_labels.message_id = message.id
  • label

message_names

  • id
  • message_idJOIN message_names ON message_names.message_id = message.id
  • name

答案 1 :(得分:0)

对于Strings,您可以使用||连接字符串:

update TableA set names=names ||' '|| 'B' where labels like '%b4%'