【发布时间】:2017-06-07 09:42:51
【问题描述】:
我想获取我所在位置周围的所有位置,但函数 ST_Distance_Sphere 不起作用。
我的查询:
select *, astext(location) as location from `locations`
where ST_Distance_Sphere(location, POINT(35.905069591297, 49.765869174153)) < 1000
错误:
SQLSTATE[42000]: Syntax error or access violation:
1305 FUNCTION app.ST_Distance_Sphere does not exist (SQL:
select *, astext(location) as location from `locations`
where ST_Distance_Sphere(location, POINT(35.905069591297, 49.765869174153)) < 1000)
【问题讨论】:
-
我的数据库是 MariaDb
-
具有大量三角函数调用的公式适用于 MySQL 或 MariaDB。 MySQL 直到最近(5.7.6)才实现了那个 ST 功能; MariaDB 似乎还没有把它捡起来。
-
我看到了这个链接,但 ST_Distance_Sphere 功能不相似! MariaDb Docs
-
公式需要纬度和经度。但这就是您的
POINT的组成部分,对吗?我建议的是一个有点混乱的解决方法,而不是简单的替换。 -
我对 MariaDB 很生气:|我将数据库更改为 PostgreSQL! :|
标签: database mariadb latitude-longitude