SQL:如何更新ltree内部的值?

Saz*_*zid 5 sql postgresql psycopg2 ltree

如标题所示,我很难过,猜测如何才能有效地更新多行中的值。该列通过data-type实现ltree。因此,在postgresql以下示例中,应对此数据类型进行某种形式的特殊操作:

假设表product_sections的名称为:包含这些值的列的名称为section_path (type: ltree)

Android
Android.Browser
Android.Browser.Test
Android.Browser.Compare.URL
Run Code Online (Sandbox Code Playgroud)

在这里,我只想将其更新Browser为类似Foopart的数据,这样数据将变为:

Android
Android.Foo
Android.Foo.Test
Android.Foo.Compare.URL
Run Code Online (Sandbox Code Playgroud)

提前致谢 :)

Joe*_*ove 3

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

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