PGSQL:对JSONB类型数组的对象字段批量修改
-- 假设我们有一个名为"items"的表,它有一个名为"properties"的JSONB列
-- 我们想要更新这个列中的"size"字段为一个新的值,例如"large"
-- 我们还想要添加一个新的字段"color"并设置为"blue"
UPDATE items
SET properties = properties || '{ "color": "blue" }' :: jsonb
WHERE properties ? 'size' AND properties ->> 'size' = 'small';
这段代码使用了jsonb
类型的更新操作,它利用了||
运算符来合并新的JSON对象到properties
列。properties ? 'size'
确保只有当存在size
键时,才会进行更新。properties ->> 'size' = 'small'
则确保只有当size
键的值为'small'时,才会进行更新。这样的操作可以确保我们不会误改其他不需要修改的记录。
评论已关闭