Heey allemaal

Is een functie in MySQL die het getal geeft welke het dichtst in de buurt zit?

Dus ik heb bijvoorbeeld het getaal 1000, en dan moet MySQL het getal geven uit de kolom "getallen" welke daar het dichtst bij zit.

Groet
Newb
misschien moet je denken in de richting van de:
max() < $getal;
het grootste getal onder het $getal

(zomaar een idee ik wenie of het kan)

$qry = "select max(getal) as max_get from tbl_getallen";


SELECT getal FROM getallen ORDER BY 1000 - getal LIMIT 1

SELECT getal FROM getallen ORDER BY ABS(1000 - getal) LIMIT 1


Dit zou het dan moeten worden, anders krijg je ook negatieve getallen.

[edit]
En mocht je ook het verschil willen selecteren kun je dit uithalen natuurlijk:


SELECT getal, ABS(20 - getal) AS verschil FROM getallen ORDER BY verschil LIMIT 1

[/edit]
Ik denk dat je hieraan moet gaan denken:


SELECT
   MIN(getal1-getal2)
FROM
   tabel


Je zal alleen met een if moeten gaan werken om te zorgen voor dat het kleinste getal van het hoogste getal wordt afgetrokken.

[edit]
Zoiets denk ik:


SELECT 
   MIN(verschil) 
FROM 
   (SELECT 
       CASE WHEN getal1 >= getal2 
       THEN getal1-getal2 ELSE getal2-getal1 END 
       AS verschil FROM tabel);


Dit is een hersenspinseltje, ikheb geen idee of het werkt.
[/edit]

Reageren