假设我的表名为Place with columns:
placeId int not null auto_increment,
latitude double,
longitude double,
不管它们是什么列并不重要,只要明白一点。
现在让我说我收到一个点的纬度和经度,我想要实现的是从表格行中选择,其中GLength值是最小的。
当我在mysql中执行类似的操作时很容易:
SET @ls = 'LineString(50.123 23.321,51.567 23.123)';
SELECT GLength(GeomFromText(@ls));
但一般来说我不知道如何使用变量进行此类查询(我在mysql上很差)有什么帮助吗?
我使用GLength(..)的命令并将结果限制为1,但是如何进行这样的迭代呢?
我的目标是通过Java和Hibernate作为本机sql查询来激活代码
答案 0 :(得分:0)
好的,和我的队友一起做,如果有人想要的话,这就是选择:
SELECT GLength(
linestringfromwkb(
LineString(
GeomFromWKB(Point(j.latitude,j.longitude))
,GeomFromWKB(Point(51,22))))),j.latitude,j.longitude FROM my_database.place_table j
order by
GLength(
linestringfromwkb(
LineString(
GeomFromWKB(Point(j.latitude,j.longitude))
,GeomFromWKB(Point(51,22))))) asc
limit 1;