首页 文章

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

提问于
浏览
243

我试过但失败了:

mysql> select max(1,0);
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

3 回答

  • 443

    使用GREATEST()

    例如 . :

    SELECT GREATEST(2,1);
    
  • 21

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

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

    要获取每行的一组列,文字或变量的最大值,请执行以下操作:

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

    您可以使用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) .

相关问题