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
Erklärung
Parameter
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!