我试过但失败了:
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
答案 0 :(得分:478)
答案 1 :(得分:23)
要在一组行中获取列的最大值:
SELECT MAX(column1) FROM table; -- expect one result
获取每行的一组列,文字或变量的最大值:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
答案 2 :(得分: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)。