Самое большое значение из двух или более полей
Мне нужно, чтобы получить наибольшее значение из двух полей:
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))