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

Запитване в рамките на дължина и ширина в MySQL

Трябва да потърсите формулата на Haversine, но добро начало може да бъде:

Цитиране от първия URL:

Ето SQL оператор, който ще намери най-близките 20 местоположения, които са в радиус от 25 мили до координатата 37, -122. Той изчислява разстоянието въз основа на географската ширина/дължина на този ред и целевата ширина/дължина и след това пита само за редове, където стойността на разстоянието е по-малка от 25, подрежда цялата заявка по разстояние и я ограничава до 20 резултата. За да търсите по километри вместо по мили, заменете 3959 с 6371.

SELECT
    id,
    ( 3959
      * acos( cos( radians(37) )
              * cos(  radians( lat )   )
              * cos(  radians( lng ) - radians(-122) )
            + sin( radians(37) )
              * sin( radians( lat ) )
            )
    )
    AS distance
FROM markers
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвам каскада за изтриване в mysql?

  2. Какво е разделяне на MYSQL?

  3. Проверете дали съществува, ако е така, актуализирайте с 1++, ако не вмъкнете

  4. множество заявки една и съща таблица, но в различни колони mysql

  5. ActiveRecord::ConnectionTimeoutError:не можа да получи връзка с база данни в рамките на 5 000 секунди (изчаква се 5 000 секунди)