【发布时间】:2010-12-06 15:30:17
【问题描述】:
我试过但失败了:
mysql> select max(1,0);
ERROR 1064 (42000):您的 SQL 语法有错误;检查手册
对应于您的 MySQL 服务器版本,以便使用正确的语法
第 1 行的“0)”附近
【问题讨论】:
我试过但失败了:
mysql> select max(1,0);
ERROR 1064 (42000):您的 SQL 语法有错误;检查手册
对应于您的 MySQL 服务器版本,以便使用正确的语法
第 1 行的“0)”附近
【问题讨论】:
【讨论】:
LEAST
GREATEST 的参数运行,以便获取特定列的值
select greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null; 会给你约会1。
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
获取一组行中列的最大值:
SELECT MAX(column1) FROM table; -- expect one result
获取每行的一组列、文字或变量的最大值:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
【讨论】:
GREATEST 的空值。任何 null 值都会导致函数返回 null。为了防止这种情况,你可以做GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
您可以将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)。
【讨论】:
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue。太复杂了
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))