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)
ik zie hem niet
zal inderdaad iets worden met MIN() en MAX() icm met een paar subqueries
$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]