Postgres中的LTREE祖先查询无法正常工作

问题描述 投票:0回答:1

我有一个带有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
        ) 

但是,这仅返回最后一行,而我希望所有这三行。我在做什么错?

database postgresql postgresql-9.4 ltree
1个回答
0
投票

我也是Ltree的新手,但我想我可以帮上忙!

首先,您已经为Ltree设置了GIST索引,对吧?像官方文档的F.21.3部分一样? https://www.postgresql.org/docs/current/ltree.html

我认为如果没有这些,操作员将无法正确找出您想要的!除了查询看起来不错之外,我还在本地环境上进行了相同的查询(尽管我使用的是最新版本的Postgres),并且有效!

© www.soinside.com 2019 - 2024. All rights reserved.