sql >> Databáze >  >> RDS >> Mysql

Jak najít nejbližší polohu pomocí zeměpisné šířky a délky z databáze SQL?

Vyhledání míst v okolí pomocí MySQL

Zde je příkaz SQL, který najde 20 nejbližších míst, která jsou v okruhu 25 mil k souřadnici 37, -122. Vypočítá vzdálenost na základě zeměpisné šířky/délky daného řádku a cílové zeměpisné šířky/délky a poté se zeptá pouze na řádky, kde je hodnota vzdálenosti menší než 25, seřadí celý dotaz podle vzdálenosti a omezí jej na 20 výsledků. Chcete-li hledat podle kilometrů místo mílí, nahraďte 3959 6371.

Struktura tabulky:

id,name,address,lat,lng

POZNÁMKA - Zde zeměpisná šířka =37 a délka =-122. Takže stačí předat svůj vlastní.

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

Podrobnosti naleznete zde .



  1. Databáze Python a MySQL:Praktický úvod

  2. Připojení aplikací běžících na Linuxu k Amazon Relational Database Services (RDS) pro SQL Server

  3. Příkaz INSERT v Oracle

  4. Počítejte počet dní mezi 2 daty v JPA