Heim > Datenbank > MySQL-Tutorial > Hauptteil

Hier sind einige Titeloptionen, die sich in Stil und Schwerpunkt unterscheiden: **Direkt und informativ:** * **So finden Sie Standorte innerhalb eines Umkreises mit MySQL: Eine verbesserte Abfrage** * **Genaue Geolocation-Suche in

Susan Sarandon
Freigeben: 2024-10-26 09:44:03
Original
778 Leute haben es durchsucht

Here are a few title options, varying in style and focus:

**Direct & Informative:**

* **How to Find Locations Within a Radius Using MySQL: An Improved Query**
* **Accurate Geolocation Search in MySQL: A Query for Finding Locations Within a Radius**

**Q

MySQL-Abfrage zum Suchen von Standorten innerhalb eines Radius

Abfragen, die nach Standorten innerhalb eines bestimmten Radius suchen, werden beim Umgang mit Geodaten verwendet. In diesem Fall ist eine Abfrage erforderlich, um alle Zeilen innerhalb eines 25-Meilen-Radius um einen bestimmten Breiten- und Längengrad abzurufen. Allerdings lieferte die ursprüngliche Abfrage nicht für alle Zeilen genaue Ergebnisse.

Verbesserte Abfrage

Die verbesserte Abfrage eliminiert falsche Ergebnisse, indem eine genauere Formel zur Berechnung verwendet wird Abstand zwischen Reihen:

SELECT
    `id`,
    (
        6371 *
        acos(
            cos( radians( :lat ) ) *
            cos( radians( `lat` ) ) *
            cos(
                radians( `long` ) - radians( :long )
            ) +
            sin(radians(:lat)) *
            sin(radians(`lat`))
        )
    ) `distance`
FROM
    `location`
HAVING
    `distance` < :distance
ORDER BY
    `distance`
LIMIT
    25
Nach dem Login kopieren

Erklärung

  • Die Formel acos( ... ) berechnet den Winkel zwischen zwei Breiten- und Längengradpunkten.
  • Durch Multiplizieren dieses Winkels mit 6371 wird das Ergebnis in Meilen umgewandelt.
  • Die resultierende Entfernung wird in der Entfernungsspalte gespeichert.
  • Alle Zeilen mit einer Entfernung, die kleiner als der angegebene Wert ist, werden ausgewählt.

Parameter

  • :lat und :long sind der Breiten- und Längengrad des Mittelpunkts.
  • :distance ist der gewünschte Radius in Meilen.

Mit dieser verbesserten Abfrage können alle Zeilen innerhalb eines angegebenen Radius genau abgerufen werden, wodurch die falschen Ergebnisse der ursprünglichen Abfrage beseitigt werden.

Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, die sich in Stil und Schwerpunkt unterscheiden: **Direkt und informativ:** * **So finden Sie Standorte innerhalb eines Umkreises mit MySQL: Eine verbesserte Abfrage** * **Genaue Geolocation-Suche in. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!