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