Запросить любое поле с наибольшим номером

0

У меня есть 2 поля в таблице базы данных: "вверх" и "вниз", и оба они имеют целочисленные значения.

up = 8
down = 4

Чтобы вытащить строки, где вверх больше, чем вниз, я использую

$query = "SELECT * FROM table WHERE up > down";

Предположим, что я хочу вывести значение любого из полей с наивысшим числом. Как я могу сделать это в запросе?

Теги:
database
field

2 ответа

2
Лучший ответ
SELECT IF(a > b, a, b) AS max_value
  FROM (SELECT MAX(up) AS a,
               MAX(down) AS b
          FROM table) x
  • 0
    Хм, разве SELECT GREATEST( up, down ) FROM table будет проще? (только что узнал об этом)
  • 0
    @Noob: это работает? ;-) Вы можете заменить только мой IF на SELECT GREATEST(up, down) , да.
Показать ещё 7 комментариев
1

Я обнаружил, что функция greatest() идеально подходит для моего случая http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_greatest

SELECT GREATEST( up, down ) FROM table

Ещё вопросы

Сообщество Overcoder
Наверх
Меню