Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tìm 10 thành phố gần nhất với MySQL bằng cách sử dụng vĩ độ và kinh độ?

Bạn không thể sử dụng có bởi vì bạn không nhóm theo bất kỳ thứ gì. Những gì bạn cần làm là lặp lại những gì bạn đã làm trong phần chọn ở đâu.

$query = "SELECT *, 
( 3959 * acos( cos( radians('$slatitude') ) * 
cos( radians( latitude ) ) * 
cos( radians( longitude ) - 
radians('$slongitude') ) + 
sin( radians('$slatitude') ) * 
sin( radians( latitude ) ) ) ) 
AS distance FROM cities WHERE ( 3959 * acos( cos( radians('$slatitude') ) * 
cos( radians( latitude ) ) * 
cos( radians( longitude ) - 
radians('$slongitude') ) + 
sin( radians('$slatitude') ) * 
sin( radians( latitude ) ) ) ) < '$miles' ORDER BY distance ASC LIMIT 0, 10";

hoặc bạn có thể làm điều gì đó như sau:

$query = "
SELECT * FROM (
  select *, 
  ( 3959 * acos( cos( radians('$slatitude') ) * 
  cos( radians( latitude ) ) * 
  cos( radians( longitude ) - 
  radians('$slongitude') ) + 
  sin( radians('$slatitude') ) * 
  sin( radians( latitude ) ) )) as distance from cities
) WHERE distance < '$miles' ORDER BY distance ASC LIMIT 0, 10";


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng LIMIT mà không cần ORDER BY

  2. sql chọn top 5 hàng tháng

  3. CHỌN Dữ liệu từ nhiều bảng?

  4. MySQL LEFT JOIN error

  5. Làm cách nào để đổi tên tệp đã tải lên trước khi lưu vào thư mục?