Matti Mäkitalo: mysql: NAHE Ergebnisse

Beitrag lesen

Hi,

Was für eine Differenz? Ich kann ja keinen Radius vorgeben.

Bitte nicht durcheinander fragen. Das Thema war eben der Geburtstag. Was willst du da mit einem Radius? Hast du nun verstanden, wie man die Differenz zweier Tage ermittelt?

Eine Sphäre (die Verallgemeinerung eines Kreises oder einer Kugel) ist die Menge aller Punkte, die einen festen Abstand r zu einem Punkt z (dem "Mittelpunkt") haben. Der feste Abstand r ist der Radius.
Auf der Zahlgeraden ist eine Sphäre analog die beiden Punkte, welchen gleichen Abstand zu einem Punkt haben, und das sind gerade x:=z+r und y:=z-r. Es gilt jeweils |y-z| = |x-z| = r. Lange Rede, kurzer Sinn: auch auf der Zahlgeraden gibt es Radien, wobei es sich da im Wesentlichen um das handelt, was du vorher schonmal geschrieben hast.

Also nochmals: sortieren nach dem Betrag der Differenz und dann das Ergebnis auf die gewünschte Zahl einschränken.

Ein anderer Denkansatz (und damit mein Posting auch einen wirklichen Sinn hat): MySQL hat ja gewisse Probleme mit Indizes auf berechneten Werten. Man könnte daher mal ausprobieren, die Abfrage aufzuteilen in die Elemente, die größer sind, und diejenigen, die kleiner sind, und beide Abfragen auf n Elemente beschränken (n - gewünschte Zeilenzahl). Die 2n Elemente dann mit der Betrags-Logik behandeln. Nur mal so als Tipp ins Blaue hinein, könnte bei großer Zeilenzahl und kleinem n schneller sein als den Betrag zum Zielwert für alle zu berechnen.

Bis die Tage,
Matti