我有一个带有LTREE
列的表,并且数据如下所述。
ID Label Path
1. ABC. 1
2. DEF. 1.2
26. GHI. 1.2.26
假设我想找到all标记为GHI
的节点的祖先。我正在使用的查询是
SELECT *
FROM
my_table as tbl
WHERE
tbl.path @> (
SELECT
path
FROM
my_table
WHERE
id=26
)
但是,这仅返回最后一行,而我希望所有这三行。我在做什么错?
我也是Ltree的新手,但我想我可以帮上忙!
首先,您已经为Ltree设置了GIST索引,对吧?像官方文档的F.21.3部分一样? https://www.postgresql.org/docs/current/ltree.html
我认为如果没有这些,操作员将无法正确找出您想要的!除了查询看起来不错之外,我还在本地环境上进行了相同的查询(尽管我使用的是最新版本的Postgres),并且有效!