MySQL中的LEAST和GREATEST是兩個非常有用的函數。它們可以用于比較多個值并返回其中最小或最大的值。下面我們來仔細了解一下這兩個函數。
LEAST函數在傳入多個值時,會返回其中最小的那個值。例如:
SELECT LEAST(5, 2, 8, 1, 0); -- 返回0 SELECT LEAST('11', '2', '45', '3', '12'); -- 返回2
GREATEST函數則相反,會返回傳入值中最大的那個值:
SELECT GREATEST(5, 2, 8, 1, 0); -- 返回8 SELECT GREATEST('11', '2', '45', '3', '12'); -- 返回45
需要注意的是,LEAST和GREATEST函數只能接受兩個或兩個以上的參數。如果只有一個參數,它們會返回該參數本身的值。
SELECT LEAST(3); -- 返回3 SELECT GREATEST(7); -- 返回7
此外,如果傳入的值中有NULL,LEAST和GREATEST函數的處理方式也有一些特殊。如果所有的參數均為NULL,兩個函數都會返回NULL。如果傳入的參數中有NULL,LEAST函數會返回NULL和非NULL值中的最小值。GREATEST函數則會返回非NULL值中的最大值。
SELECT LEAST(3, 5, NULL, 2); -- 返回2 SELECT GREATEST(3, 5, NULL, 2); -- 返回5
綜上所述,LEAST和GREATEST函數都是非常實用的函數。在進行多個值的比較時,它們可以節省我們很多的代碼行數,提高查詢效率。