SQL:如何更新ltree内的值?

正如标题所示,我很难过,猜测如何有效地更新多行中的值.该列使用数据类型ltree实现.所以,在
postgresql中应该为这种数据类型提供某种形式的特殊操作.这是一个例子:

表的名称,例如:product_sections和包含这些值的列的名称是section_path(type:ltree)

Android
Android.Browser
Android.Browser.Test
Android.Browser.Compare.URL

在这里,我想仅将浏览器更新为Foo部分,以便数据将如下所示:

Android
Android.Foo
Android.Foo.Test
Android.Foo.Compare.URL

提前致谢 :)

最佳答案

update product_sections
set product_path = 'Android.foo'::lpath|| subpath(product_sections,2)) 
where product_path <@ 'Android.browser'::lpath

未经测试,但这应该达到正确的结果.

点赞