0

我有一个 sqlite 数据库的位置。(数据库中的每一行都是一个带有 lat 和 lng 的位置)我想查询那个 db 以找到离我最近的位置。当我做这样的事情时,我能够只返回位置,我得到一个很好的距离数字列表。

SELECT  ( 38.9672071 - lat) * ( 38.9672071 - lat) + ( -77.5124503 - lng) * ( -77.5124503- lng) * 0.6045156141643896 AS distance FROM pois ORDER BY distance ASC LIMIT 2

但我不想只知道到每个点的距离,我想从我的数据库中选择整行,按内联创建的距离公式排序。这是我的sqlite查询:

SELECT * ( 38.9671889 - lat) * ( 38.9671889 - lat) + ( -77.5124857 - lng) * ( -77.5124857- lng) * 0.6045159247970772 AS distance FROM pois ORDER BY distance ASC LIMIT 2

这给了我这个错误:

android.database.sqlite.SQLiteException: near "(": syntax error (code 1): , while compiling: SELECT * ( 38.9671889 - lat) * ( 38.9671889 - lat) + ( -77.5124857 - lng) * ( -77.5124857- lng) * 0.6045159247970772 AS distance FROM pois ORDER BY distance ASC LIMIT 2

我是 sql 语句的菜鸟,我不确定语法错误是什么。

4

1 回答 1

0

后加逗号*

尝试这个:

SELECT *, ( 38.9671889 - lat) * ( 38.9671889 - lat) + ( -77.5124857 - lng) * ( -77.5124857- lng) * 0.6045159247970772 AS distance FROM pois ORDER BY distance ASC LIMIT 2
于 2013-10-28T22:42:01.960 回答