【发布时间】:2020-08-03 16:48:44
【问题描述】:
运行以下代码时出现 sql 错误。我是 SQL 的新手。因此,如果这是一个愚蠢的问题,请忽略。以下是我的 SQL 查询,用于根据用户的位置返回一些用户
SELECT DISTINCT e.* FROM users u WHERE (u.id IN (SELECT id,
(6371 * acos(
cos( radians(9.9894229) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(76.57897489999999) ) + sin( radians(9.9894229) ) * sin( radians( latitude ) )
)
)
AS distance
FROM users_geo_data
HAVING distance < 20
)) ORDER BY u.time_created desc, u.id desc LIMIT 10
但是我说错了
SQLSTATE[21000]:基数违规:1241 操作数应包含 1 列
PS:
- 由于平台内置db架构,我只能通过where子句使用radius search子查询。
- 另一件事是我可能必须根据距离(自定义)或基于 time_created(默认)对搜索结果进行排序
【问题讨论】:
标签: mysql sql database geolocation