以下使用MySQL原生函数GREATEST和LEAST获取一行数据中的最小和最大值。
GREATEST(value1,value2,...)
具有两个或多个参数,返回最大(最大值)的参数。使用与相同的规则比较参数 LEAST()。
mysql> SELECT GREATEST(2,0); -> 2 mysql> SELECT GREATEST(34.0,3.0,5.0,767.0); -> 767.0 mysql> SELECT GREATEST('B','A','C'); -> 'C'
GREATEST()NULL如果参数为,则 返回 NULL。
LEAST(value1,value2,...)
具有两个或多个参数,返回最小(最小值)的参数。使用以下规则比较参数:
-
如果有任何参数
NULL
,则结果为NULL
。无需比较。 -
如果所有参数都是整数值,则将它们作为整数进行比较。
-
如果至少一个参数为双精度,则将它们作为双精度值进行比较。否则,如果至少一个参数是一个 DECIMAL值,则将它们作为DECIMAL 值进行比较。
-
如果参数包含数字和字符串的混合,则将它们作为数字进行比较。
-
如果任何参数是非二进制(字符)字符串,则将参数作为非二进制字符串进行比较。
-
在所有其他情况下,将参数作为二进制字符串进行比较。
返回类型LEAST()是比较参数类型的聚合类型。
mysql> SELECT LEAST(2,0); -> 0 mysql> SELECT LEAST(34.0,3.0,5.0,767.0); -> 3.0 mysql> SELECT LEAST('B','A','C'); -> 'A'