Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Postgres中的LTREE祖先查询未按预期工作_Database_Postgresql_Postgresql 9.4_Ltree - Fatal编程技术网

Database Postgres中的LTREE祖先查询未按预期工作

Database Postgres中的LTREE祖先查询未按预期工作,database,postgresql,postgresql-9.4,ltree,Database,Postgresql,Postgresql 9.4,Ltree,我有一个带有LTREE列的表,数据如下所述 ID Label Path 1. ABC. 1 2. DEF. 1.2 26. GHI. 1.2.26 假设我想查找标记为GHI的节点的祖先。我使用的查询是 SELECT * FROM my_table as tbl WHERE tbl.path @> ( SELECT path FROM

我有一个带有
LTREE
列的表,数据如下所述

ID  Label  Path
1.  ABC.   1
2.  DEF.   1.2
26. GHI.   1.2.26
假设我想查找标记为
GHI
的节点的祖先。我使用的查询是

SELECT *
    FROM
        my_table as tbl
    WHERE
        tbl.path @> (
            SELECT
                path 
            FROM
                my_table 
            WHERE
                id=26
        ) 

但是,这只返回最后一行,而我需要所有三行。我做错了什么?

我也是Ltree的新手,但我想我可以帮你

您的设置应该与Ltree的GIST索引相匹配。 参见官方文件的
F.21.3
部分


我相信没有它,运营商就无法正确地了解您想要什么。此外,这个问题似乎是正确的。我在本地环境中运行了相同的代码(尽管我使用了最新版本的Postgres),这很有效。

要查找给定路径的所有子体,请使用
SELECT *
FROM my_table as tbl
WHERE path <@ '1.12.26'