Я получаю сообщение об ошибке sql при выполнении следующего кода. Я новичок ie в 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 столбец (s)
PS:
- Из-за встроенной в платформу архитектуры db я могу использовать подзапрос поиска по радиусу только через предложение where.
- Другое дело, что мне, возможно, придется упорядочить результаты поиска на основе расстояния (настраиваемый) или на основе time_created (по умолчанию)