>>>ВОПРОСЫ НОВИЧКОВ<<<

152K
.
Как правильно такой вот запрос составить
SELECT * FROM `table` WHERE `f`=7 ORDER BY (`a`-`b`) OR (`b`-`a`) DESC LIMIT 5

Т.е нужно чтобы заброс посчитал наибольшую разницу между a и b и отсортировал их по этой разнице.
.
все ребята спосибо всем
.
(\/)____o_O____(\/)
Zidan_@777@, ты их в селекте укажи сначала, то есть
select *,
(`a` + `b`) as `sumab` from `tab` where f = 10 order by sumab desc limit 5
как с телефона не удобно писать эти запросы, это просто ужас
.
Jove, Смотри эррол лог на хосте. критическая ошибка скорее всего
.
Koenig, не, немного не то. Мне нужно отсортировать не по сумме их, а по разности A и B (т.е. выбираем все записи где наибольшее значение получается при A-B и B-A)
пытался как то через сумму все это посчитать, потом вычесть, но бред получается..
Вот при условии
where f=7 order by `a`-`b` DESC LIMIT 5
мне се правильно выводит, но учитывает лишь записи где разница наибольшая между A и B,мне сюда еще нужно присоединить чтобы учитывались записи где разница будет наибольшей при обратном вычитании, т.е. B-A
.
(\/)____o_O____(\/)
Zidan_@777@, кинь дамп таблицы и что ты пытаешься получить
.
Zidan_@777@,
SELECT IF(a >= b, a-b, b-a) AS `diff` FROM `table` ORDER BY `diff`  DESC
.
L!MP
Zidan_@777@, хотя можно еще вот так:
WHERE f=7 ORDER BY ABS(`a`-`b`) DESC LIMIT 5


Впринципе же не важно что из чего вычитать чтоб узнать разность между двумя цифрами, 9 - 7 и 7 - 9 дадут 2 и -2, просто привести к без знаковому и должно сработать так как тебе надо.
.
Koenig, вот дамп
Прикрепленные файлы:
.
# L!MP (22.11.2016 / 00:16)
Zidan_@777@, хотя можно еще вот так: WHERE f=7 ORDER BY ABS(`a`-`b`) DESC LIMIT 5

Впринципе же не важно что из чего вычитать чтоб узнать разность между двумя цифрами, 9 - 7 и 7 - 9 дадут 2 и -2, п
Во, вот этот вариант самое то) забыл что abs в sql тоже имеется) благодарю
Всего: 9861