MySQL 取一行数据中的最大和最小值

 

以下使用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'

 

posted @ 2021-03-03 14:33  VicLW  阅读(2892)  评论(0编辑  收藏  举报