У меня есть 2 поля в таблице базы данных: "вверх" и "вниз", и оба они имеют целочисленные значения.
up = 8
down = 4
Чтобы вытащить строки, где вверх больше, чем вниз, я использую
$query = "SELECT * FROM table WHERE up > down";
Предположим, что я хочу вывести значение любого из полей с наивысшим числом. Как я могу сделать это в запросе?
SELECT IF(a > b, a, b) AS max_value
FROM (SELECT MAX(up) AS a,
MAX(down) AS b
FROM table) x
Я обнаружил, что функция greatest()
идеально подходит для моего случая http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_greatest
SELECT GREATEST( up, down ) FROM table
SELECT GREATEST( up, down ) FROM table
будет проще? (только что узнал об этом)IF
наSELECT GREATEST(up, down)
, да.