我有一个名为“pois”的表,我想运行SQL查询,它将在500米内显示与手机GPS位置最近的所有位置,我将MySQL代码复制到某处并将其用于SQLLite和它不起作用,也许任何人都可以帮助我将查询翻译成SQLLite查询版本?通过GPS位置获取位置
的代码如下:
Sub GPS_LocationChanged (Location1 As Location)
Loc1 = Location1.Latitude
Loc2 = Location1.Longitude
Dim Cursor As Cursor
Qry = "Select place_id,place_name,lat,lon,poi_catid, (6371 * acos(cos(radians(" & Loc1 & ")) * cos(radians(lat)) * cos(radians(lon) - radians(" & Loc2 & ")) + sin(radians(" & Loc1 & ")) * sin(radians(lat)))) as distance FROM pois HAVING distance < 0.5 ORDER BY distance"
Cursor = SQL1.ExecQuery(Qry)
For i = 0 To 15
Cursor.Position = i
ToastMessageShow(Cursor.GetString("place_name"),True)
Next
Cursor.Close
End Sub
错误消息指出:
android.database.sqlite.SQLiteException:没有这样的功能:ACOS(代码 1):
我有149000条记录,选择所有行,我认为它不是很好,我已经在php/mysql上测试了它,它工作正常...... –
如果您选择所有行或不是,并不重要。数据库不是神奇的,仅仅因为你在SQL语句中写了一些东西并不意味着它变得高效。他们将会运行相同的测试条件。 – Sneftel