У меня есть таблица, в которой есть некоторые пользователи. Все они имеют имя пользователя, широту, долготу и некоторые другие поля.Оператор SQL SELECT с HAVING и OR
Я хочу выбрать всех пользователей в диапазоне 5KM заданной координаты и на основании некоторых других критериев. Теперь эта часть не была сложной.
Однако я также хочу, чтобы оператор SQL возвращал пользователей с заданными именами пользователей независимо от других критериев, упомянутых выше.
Так что, в основном, SQL должен возвращать пользователей на основе расстояния и других критериев И пользователей, у которых есть конкретное имя пользователя, несмотря на то, что они соответствуют критериям или нет.
Вот что у меня есть, но он не работает:
SELECT idUser
, username
, telephone
, latitude
, longitude
, (6371 * acos(cos(radians(?)) * cos(radians(latitude)) * cos(radians(longitude) - radians(?)) + sin(radians(?)) * sin(radians(latitude)))) AS distance
FROM main
WHERE active = ?
AND idUser != ?
HAVING distance < 5
OR username = mike
OR username = john
Да, это то, что я делал, но это не работает. Причина в том, что я думаю, что он выбирает только тех пользователей, у которых есть 0 (предположим? 0), и если у mike нет активного 0, это не сработает –