Sorduğun şey aslında çok fazla komplike olmakla beraber, farkı en küçük olan sayılar birbirlerine en yakın sayılardır diyebiliriz ;
Veritabanı:
id x
1 300
2 600
3 700
Adamın girdiği değerler:
x
500
SELECT *,ABS(500-x) AS fark FROM bisey ORDER BY fark DESC LIMIT 1
olurdu, ancak senin iki adet verin var, bu durumda önceliği olan veriyi seçmelisin, x e öncelik verirsen;
Veritabanı:
id x y
1 300 600
2 600 500
3 700 300
Adamın girdiği değerler:
x y
500 400
SELECT *,ABS(500-x) AS farkX, ABS(400-y) AS farkY FROM bisey ORDER BY farkX DESC, farkY DESC LIMIT 1
Yada sadece x veya sadece y ye en yakın olanı seçtikten sonra, bir de alanı en yakın olan değeri aynı yöntemle bulup sıralayabilirsin, veya işte kombine edip kafana göre birşeyler yapabilirsin.


Konu Adresi (URL)
About LinkBacks
Alıntı Yaparak Yanıtla
