Tôi đã tìm thấy nhiều bài đăng tương tự và thậm chí đã cố gắng tìm hiểu cách xử lý các giá trị âm trong MySQL, nhưng không có kết quả.MySQL - Tìm kiếm giá trị kinh độ âm với BETWEEN
Tôi có một trang web mà tôi đang sử dụng Google Maps và như một cải tiến hiệu suất tôi đang giới hạn các điểm đánh dấu được vẽ trên bản đồ cho những người nằm trong ranh giới bản đồ.
Tôi muốn phát triển truy vấn sẽ hoạt động với các giá trị dươngvà longitude
.
Đối với cơ sở dữ liệu:
latitude FLOAT(10, 6)
longitude FLOAT(10, 6)
Truy vấn:
SELECT *
FROM `table`
WHERE `latitude` BETWEEN 47.926930 AND 47.929806
AND `longitude` BETWEEN -97.077303 AND -97.083997
Nếu tôi thả các khoản BETWEEN
cho longitude
tôi nhận được kết quả, mặc dù không chính xác với không longitude
hạn chế.
Tôi đã thử này:
AND -`longitude` BETWEEN ABS(-97.077303) AND ABS(-97.083997)
nào không làm việc, nhưng chỉ cho longitude
giá trị âm.
Tôi có cần kiểm tra longitude
nếu âm tính của nó không?
Khi sử dụng GIỮA bạn nên có giá trị thấp hơn trước và giá trị cao hơn thứ hai. -98.083997 thấp hơn -97.077303, do đó, hoán đổi thứ tự của hai trong mệnh đề BETWEEN. – scwagner
Ah vâng, một cái gì đó đơn giản và hiển nhiên như bình thường. Cảm ơn bạn! Đôi khi bạn chỉ cần một bộ mắt khác. Đây có phải là giải pháp có thể chấp nhận được không? 'SELECT * FROM tên_bảng ĐÂU vĩ GIỮA ÍT NHẤT (47,926930, 47,929806) và lớn (47,926930, 47,929806) VÀ longitude GIỮA ÍT NHẤT (-97,077303, -97,083997) và lớn (-97,077303, -97,083997) ' – hungerstar