如何在MySQL中获取两个值的最大值?

问题描述 投票:0回答:4

我尝试过但失败了:

mysql> select max(1,0);
ERROR 1064 (42000):您的 SQL 语法有错误;检查手册
与您的 MySQL 服务器版本相对应,以便使用正确的语法
第 1 行“0)”附近
mysql max
4个回答
652
投票

使用GREATEST()

例如:

SELECT GREATEST(2,1);

注意:每当任何单个值包含 null 时,该函数总是返回 null (感谢用户@sanghavi7)


33
投票

获取一组行中某一列的最大值:

SELECT MAX(column1) FROM table; -- expect one result

获取每行的一组列、文字或变量的最大值:

SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results

8
投票

您可以使用具有不可为空字段的 GREATEST 函数。 如果此值之一(或两个)可以为 NULL,请勿使用它(结果可以为 NULL)。

select 
    if(
        fieldA is NULL, 
        if(fieldB is NULL, NULL, fieldB), /* second NULL is default value */
        if(fieldB is NULL, field A, GREATEST(fieldA, fieldB))
    ) as maxValue

您可以将 NULL 更改为您首选的默认值(如果两个值都是 NULL)。


0
投票

选择 GREATEST(value1, value2) 作为最大值;

© www.soinside.com 2019 - 2024. All rights reserved.