SELECT * FROM `table` WHERE `f`=7 ORDER BY (`a`-`b`) OR (`b`-`a`) DESC LIMIT 5
Т.е нужно чтобы заброс посчитал наибольшую разницу между a и b и отсортировал их по этой разнице.
SELECT * FROM `table` WHERE `f`=7 ORDER BY (`a`-`b`) OR (`b`-`a`) DESC LIMIT 5
where f=7 order by `a`-`b` DESC LIMIT 5
мне се правильно выводит, но учитывает лишь записи где разница наибольшая между A и B,мне сюда еще нужно присоединить чтобы учитывались записи где разница будет наибольшей при обратном вычитании, т.е. B-A SELECT IF(a >= b, a-b, b-a) AS `diff` FROM `table` ORDER BY `diff` DESC
WHERE f=7 ORDER BY ABS(`a`-`b`) DESC LIMIT 5
# L!MP (22.11.2016 / 00:16)Во, вот этот вариант самое то) забыл что abs в sql тоже имеется) благодарю
Zidan_@777@, хотя можно еще вот так: WHERE f=7 ORDER BY ABS(`a`-`b`) DESC LIMIT 5
Впринципе же не важно что из чего вычитать чтоб узнать разность между двумя цифрами, 9 - 7 и 7 - 9 дадут 2 и -2, п