我有以下查询:
SELECT "coordinate" FROM "chunk" WHERE "coordinate"=ST_SetSRID(ST_MakePoint(1, 1), 4326)
在这里,我想从一个坐标为(1,1)的块中选择所有行,但是出现以下错误:
SQL Error [42883]: ERROR: operator does not exist: point = geometry
Hint: No operator matches the given name and argument types. You might need to add explicit type casts.
Position: 52
我很高兴看到任何可以帮助我解决此问题的方法。预先谢谢你。
答案 0 :(得分:1)
如果要在sql的“ where”部分中搜索坐标,则应使用st_astext函数
这是示例SQL查询
select st_astext(coordinate),coordinate
from (
select
1 as id,
ST_SetSRID(ST_MakePoint(1, 1), 4326) as coordinate
) "chunk"
where st_astext(coordinate)='POINT(1 1)'
答案 1 :(得分:0)
我刚刚注意到coordinate
的类型为point
,而不是最初假设的geometry
。将其转换为geometry
可以消除该错误。