Mysql
 sql >> база данни >  >> RDS >> Mysql

php mysql сравнява long и lat, връща такива под 10 мили

Вероятно не е нужно да правите това в код, вероятно можете да направите всичко това в DB. ако използвате пространствен индекс . Документация на MySQL за пространствен индекс

РЕДАКТИРАНЕ, за да отрази вашата редакция:

Мисля, че искате нещо подобно:

SELECT *, ((ACOS(SIN($lat * PI() / 180) * SIN(lat * PI() / 180) + COS($lat * PI() / 180) * COS(lat * PI() / 180) * COS(($lon - lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance FROM locations HAVING distance<='10' ORDER BY distance ASC

VIA:http://www.zcentric.com/blog/2007/03 /calculate_distance_in_mysql_wi.html :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Код на грешка:1822, когато типовете данни съвпадат, със съставен ключ

  2. Най-добри практики за съхранение на банкова информация в база данни

  3. Преименувайте името на таблицата на Amazon RDS на главна буква, извежда грешка

  4. Последователно ограничение и компенсиране на неправилното разположение в заявката

  5. MySQL и JSON - трансформирайте масива в редове