向现有字符串添加值

zpgglvta  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(607)

这听起来像是一个基本的东西,但我运行我们的咖啡因和我的大脑正在抓紧。。。
我有一个表,其中两列被设置为datatype=text,并包含逗号分隔的字符串,类似这样

id   |   labels                       | items
------------------------------------------------
123  |  Resources,Faculty Resources   | 2323,97

如果我知道行id,我可以通过update将新值附加到标签和项目吗?或者我首先需要查询表、获取数据、附加值,然后使用新字符串进行更新吗?

azpvetkf

azpvetkf1#

单个更新查询可以执行以下操作:

update mytable 
set items = concat(coalesce(concat(items, ','), ''), :new_item)
where id = :id

... 哪里 :new_item 是要添加的项目,并且 :idid 目标行的。
这个 coalesce() / concat() 逻辑考虑了 items 可以是 null 在现有行上。如果事实并非如此,那么简单地说:

update mytable 
set items = concat(items, ',', :new_item)
where id = :id

但是,请注意,在表中存储带分隔符的列表是不好的做法,通常应该避免。更多关于这一点可以在这个著名的so问题中阅读。

相关问题