Самое большое значение из двух или более полей
Мне нужно, чтобы получить наибольшее значение из двух полей:
SELECT MAX(field1), MAX(field2)
теперь, как я могу получить наибольшее значение из этих двух?
4 ответа:
вы можете использовать
GREATEST()
функция:SELECT GREATEST(field1, field2);
если вы хотите получить абсолютный максимум из всех строк, то можно использовать следующее:
SELECT GREATEST(MAX(field1), MAX(field2));
Пример 1:
SELECT GREATEST(1, 2); +----------------+ | GREATEST(1, 2) | +----------------+ | 2 | +----------------+ 1 row in set (0.00 sec)
Пример 2:
CREATE TABLE a (a int, b int); INSERT INTO a VALUES (1, 1); INSERT INTO a VALUES (2, 1); INSERT INTO a VALUES (3, 1); INSERT INTO a VALUES (1, 2); INSERT INTO a VALUES (1, 4); SELECT GREATEST(MAX(a), MAX(b)) FROM a; +--------------------------+ | GREATEST(MAX(a), MAX(b)) | +--------------------------+ | 4 | +--------------------------+ 1 row in set (0.02 sec)
в случае, если вы выбираете наибольший () для каждой строки
SELECT GREATEST(field1, field2)
вернет NULL если одно из полей равно NULL. Вы можете использовать IFNULL, чтобы решить эту
SELECT GREATEST(IFNULL(field1, 0), IFNULL(field2, 0))