Как правильно такой вот запрос составить
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все ребята спосибо всем
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 Zidan_@777@, кинь дамп таблицы и что ты пытаешься получить
Zidan_@777@,
SELECT IF(a >= b, a-b, b-a) AS `diff` FROM `table` ORDER BY `diff` DESC Zidan_@777@, хотя можно еще вот так:
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, п