MySql Abfrage mit Berechnung?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Moin,

    ich habe folgende MySQL Tabelle:

    Unbenannt_26.jpg

    Ist es möglich eine SQL Abfrage zubauen, die mir alle Städte ,in einer Entfernung von z.B 5Km, zu einer angegebenen Koordinate ausgibt ausgibt?

    Hoffe es ist klar was ich meine, wenn nicht schreibt es Kurz.

  • Hallo,

    grundsätzlich ja. Die Formel dazu heißt "greater circle distance". Wenn du das selber implementierst musst du aber über alle (!) Datensätze laufen und für jeden die Distanz zu deinem Punkt ausrechnen, was wenig performant ist.

    Ab MySQL 5.5 hat MySQL aber ein Erweiterung namens "Extensions for Spatial Data" eingebaut, damit geht das besser und schneller. Aber AFAIK hat MySQL erst ab Version 5.6 die Funktion ST_DISTANCE(punkt1, punkt2) an Bord, mit der die Distanz von zwei Punkten berechnet wird.

    Gruß, noisefloor

  • Kann man bei ST_DISTANCE auch den maximalen Distanz Radius angeben?

    Habe es bis jetzt wie folgt gelöst:
    [code=php]SELECT city, country FROM coordinates ORDER BY ST_Distance(Point(:longitude, :latitude), geolocation) LIMIT 5[/php]

    Also beschränkt durch das Limit. Da ich aber ja nicht weis wie viele Punkte es im Umkreis gibt wurde ich gerne den Suchradius mit angeben.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!