gpt4 book ai didi

sql - PostgreSQL 仅在添加额外的 AND 子句时返回结果

转载 作者:行者123 更新时间:2023-11-29 11:50:40 27 4
gpt4 key购买 nike

我有这样的查询:

SELECT boroughs.name 
FROM boroughs, uniroads
WHERE uniroads.normalizedName='6 AVENUE'
AND st_intersects(boroughs.geometry, uniroads.way)
AND boroughs.name='Brooklyn'

0 results

但是当我运行它时,它没有返回任何结果。但是,我能够在表中找到我希望它返回的特定行,并且当我添加一个子句请求该特定行时,它工作正常:

SELECT boroughs.name 
FROM boroughs, uniroads
WHERE uniroads.normalizedName='6 AVENUE'
AND st_intersects(boroughs.geometry, uniroads.way)
AND boroughs.name='Brooklyn'
AND uniroads.osm_id='23334071'

1 result

我通过 Postgres.app 将 Postgres 9.2.2.0 与 PostGIS 结合使用。

最佳答案

一个猜测。

uniroads.osm_id 看起来像一个 Key,因此它最有可能被索引。

AND uniroads.osm_id='23334071' 子句导致(可能是另一个?)索引被使用,因此这可能意味着(某些?)最初使用的索引已损坏。

也许以下内容会有所帮助?

REINDEX TABLE boroughs;
REINDEX TABLE uniroads;

在任何情况下,EXPLAIN ANALYZE 都需要用于两个查询,以及完整所涉及表的定义。

关于sql - PostgreSQL 仅在添加额外的 AND 子句时返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14764894/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com