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

How to get the max of two values in MySQL?

我试过但失败了:

1
mysql> select max(1,0);
1
2
3
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use
near '0)' at line 1

使用GREATEST()

例如。:

注意:每当任何单个值包含null时,此函数始终返回null(感谢user @ sanghavi7)


要在一组行中获取列的最大值,请执行以下操作:

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

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

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


您可以使用GREATEST函数而不是可空字段。
如果其中一个值(或两者)都可以为NULL,请不要使用它(结果可以为NULL)。

1
2
3
4
5
6
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)。