простите мое форматирование, я на мобильном телефоне
Как сказал выше Амр Бераг, ваш результат должен быть первой строкой, возвращенной из вашего запроса.
Если выиметь такую таблицу:
ID value
---- ------
A 7
B 12
C 23
...
Затем вы можете SELECT
из этой таблицы найти наиболее близкое к некоторому значению, например так:
(Предположим, что желаемое значение равно$ VALUE)
SELECT id, value, ABS(value - $VALUE) AS diff
FROM your_table
ORDER BY diff ASC
Это вернет что-то вроде этого (скажем, $ VALUE равно 10):
id value diff
-- ------ ----
B 12 2
A 7 3
C 23 13
...
Вы можете просто выбрать первую строку.
Вы также можете добавить предложение WHERE, чтобы выбрать только строку с наименьшей разницей, используя функцию MIN
:
SELECT id, value, ABS(value - $VALUE) AS diff
FROM your_table
WHERE diff = MIN(diff)