我有一个sqlite数据库的位置。 (db中的每一行都是一个带有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语句的菜鸟,我不确定语法错误是什么。
答案 0 :(得分: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