我在postgres数据库中有一个表,其中包含位置及其相应的纬度和经度值。
Places (id, name, lat, lng) # primary-key(id)
我将得到一对纬度和经度的输入,形成一个矩形。
{
"long_ne": 12.34,
"lat_ne": 34.45,
"long_sw": 15.34,
"lat_sw": 35.56
}
我想得到矩形内的所有行。
无法根据行的lat lng值对行进行排序,因为这样会在插入新值时产生问题。
解决这个问题的最佳方法是什么来优化查询以获得结果?
很明显我可以用 WHERE
子句,但它会是ost优化的解决方案吗?表中会有大量的行,有没有办法优化这个查询以加快结果的速度?
2条答案
按热度按时间cunj1qz11#
这就是你想要的?
哪里
:lat_no
,:lat_ws
:long_no
以及:long_sw
是查询的输入参数。这将提供纬度和经度位于正方形边界之间的所有行。请注意
between
考虑包含两端边界的区间。您可以根据需要使用不等式条件对此进行更改,例如,这将使匹配在下限上包含,在上限上独占:zzoitvuj2#
一个简单的sql查询在这里就不够了吗?