Поиск минимального значения абсолютного значения поля

zul

Новичок
Поиск минимального значения абсолютного значения поля

PHP:
$query = "SELECT MIN(ABS('$N2' - p)) from cilinder";
$sql = mysql_query($query,$dbi) or die(mysql_error());
Вот таким образом ищу минимальное значение разницы между заданным значением и тем, которое есть в базе...
Но как теперь получить ID того самого p? Не могу никак сообразить...

И ещё вопрос, возможно ли ещё каким-то способом искать наиболее близкие по значению поля при сравнении с заданным..
т.е. если сравниваем 2, 56 с 2.50, 2.49, 2.57
то к примеру ближе всего будет 2.57, но если ряд дополнить значением 2, 559 то оно будет более близким.. Надеюсь я понятно выразился..
 

Tn

Guest
select id, p from cilinder where p >= $N2 order by p limit 1;
select id, p from cilinder where p < $N2 order by p desc limit 1;

и проверить где меньше разность...
 

Tn

Guest
Автор оригинала: fixxxer
SELECT id, MIN(ABS($N2 - p)) as d from cilinder order by d limit $limit
ERROR 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

(mysql Ver 11.15 Distrib 3.23.39)


select id, MIN(ABS($N2-p)) as d from users group by id order by d limit 1;
 

ONK

Пассивист PHPСluba
Сделай два запроса. Во втором ищи id записи у которой выполняется условие найденного минимума из первого запроса. Это будет всего в 2 раза томознее чем использование одного запроса.
 

Falc

Новичок
>>select id, MIN(ABS($N2-p)) as d from users group by id order by d limit 1

select id, ABS($N2-p) as d from users order by d limit 1
По мойму так лучше
 
Сверху