phpbar.de logo

Mailinglisten-Archive

Kompliziertere Mathematik in SELECT Statement
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Kompliziertere Mathematik in SELECT Statement



Moin,

nächstes Problem: ich möchte eine "fuzzy" Suche nach Ortschaften
ermöglichen. Dafür habe ich eine MySQL Tabelle mit Orten, jeweils

	id	name			lgrad		bgrad
z.B.	116	Hintertupfingen		47:51:00	08:51:00

Die Längen- und Breitengrade sind, um Rundungsfehler zu vermeiden, erstmal
als TIME abgespeichert, das läßt sich aber problemlos ändern.

Was ich jetzt machen möchte ist eine Select-Abfrage nach dem Stil

	SELECT stadt2 from orte 
		WHERE 80km < distance(Hintertupfingen,stadt2) < 100km


Problem: Mit dem Pythagoras kommt man hier nicht sehr weit, da die
Längen-und Breitengrade nicht exakt parallel sind - eine Minute (1/60 Grad)
Rechenfehler sind ca. 2km und das wird bei meiner Anwendung zu viel, vor
allem für kleinere Entfernungen.

Ich habe hier ein Perl-Skript welches ca 20 Zeilen lang mit cosinus und
sinus jongliert, und damit die Entfernung zwischen zwei Orten ausrechnen
kann. Mit dem richtigen Syntax kriege ich das sicherlich portiert, aber ...

Frage:

	- Macht das Sinn? Ich denke schon, denn sonst müßte ich jedesmal 
	  40.000 Städte rausselektieren und die Berechnung extern machen.

	- Geht MySQL überhaupt so weit, daß man dort richtige Prozeduren
	  schreiben kann?

	- Was gibt es sonst noch für Möglichkeiten? Die Datenbank wechseln
	  hatte ich eigentlich nicht vor ...


-- 
`Man sollte dem Verantwortlichen für ILOVEYOU alles     http://www.linuxfaq.de  
 mögliche antun, aber wahrscheinlich wird bloß       http://www.hitchhikers.de    
 seine Firma zweigeteilt." -- Usenet             http://www.pinguin.conetix.de     

PGP signature


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive