e.g。
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
感谢。的问候,
答案 0 :(得分:1)
使用CONCAT()
功能:
UPDATE foo SET bar = CONCAT(bar, ' B') WHERE foobar = 'barfoo';
..说,你应该真的只使用不同的关系表并规范化你的数据而不是添加逗号/分号/空格分隔列。
考虑以下结构:
messages
:
id
name
message_labels
:
id
message_id
(JOIN message_labels ON message_labels.message_id = message.id
)label
message_names
:
id
message_id
(JOIN message_names ON message_names.message_id = message.id
)name
答案 1 :(得分:0)
对于Strings,您可以使用||连接字符串:
update TableA set names=names ||' '|| 'B' where labels like '%b4%'