KraKi: /MySQL "Wert nahe" finden.

Hallo,
ich habe folgendes Problem: In einer Tabelle meiner Datenbank befindet sich eine Spalte, die mit float-Werten gefüllt ist. Jetzt möchte ich den Datensatz finden, der am Nächsten an einem bestimmten Wert liegt.
Also zum Beispiel:
Werte 1; 2; 3,3; 4,8; 6; 8,1532; 11,2; 13; (...)
und ich suche "den Wert, der am Nächsten an 10 liegt". MySQL soll dann natürlich den Datensatz mit 11,2 ausgeben. Und wenn ich nach 5 suche, dann den mit 4,8 und wenn ich nach 6 suche, dann den mit 6 und so weiter.

Ich hoffe nun, dass es eine Abfragemöglichkeit gibt dies zu erreichen.

Falls nicht müsste ich dann in php unangenehm verschachteln:
Suche Wert=10
wenn kein Ergebnis suche Wert >9,9 UND <10,1
wenn kein Ergebnis suche Wert >9,7 UND <10,3
wenn kein Ergebnis suche Wert >9,3 UND <10,7
wenn kein Ergebnis suche Wert >9 UND <11
wenn kein Ergebnis suche Wert >8,5 UND <11,5
(...)
kann man ja als Schleife gestalten (hier mit wachsender Ungenauigkeit), aber das wären gegebenenfalls eine Menge Abfragen, die ich vermeiden möchte, wenn ich kann.

  1. Hallo,

    Beispiel für MySQL: Zahl, die 5 am nächsten liegt
    SELECT * FROM tabelle ORDER BY ABS(5-floatfeld) LIMIT 1

    lg
    Martin Dunst

    --
    Do what I say, not what I do.
    --Tim Berners-Lee
    1. Hallo,

      Beispiel für MySQL: Zahl, die 5 am nächsten liegt
      SELECT * FROM tabelle ORDER BY ABS(5-floatfeld) LIMIT 1

      Schönen Dank, hat ganz ausgezeichnet funktioniert.

  2. Geht sowas?

      
    SELECT  
     MIN(ABS(DF_1 - 10.2))    -- "data field" (numerisch)  
    FROM  
     DT_1                     -- "data table"