MySQL の LEAST()・GREATEST()

ここでは MySQL の LEAST() と GREATEST() 関数についてご説明します。

MySQL の LEAST() 関数の使い方

MySQL の LEAST() 関数は、複数の引数を受け取り、その中で一番小さい引数を返す関数です。

LEAST(引数1, 引数2, 引数3, ..., 引数N);

引数にひとつでも NULL がある場合は、戻り値は NULL になります。

引数のデータ型に文字列と数字が混ざっている場合は、引数は文字列として比較されます。

引数のデータ型が全部整数の場合は、引数は整数として比較されます。

引数のデータ型全て数字で、DOUBLE が混ざっている場合は、引数は DOUBLE の精度で比較されます。

引数のデータ型全て数字で、DOUBLE の引数はなく、DECIMAL が混ざっている場合は 引数は DECIMAL の精度で比較されます。

LEAST() 関数の戻り値のデータ型は、引数のデータ型が違う場合、比較に使われたデータ型になります。


LEAST() 関数を使ってみましょう。

SELECT 	LEAST(10, 3, 7),
		LEAST(10, 3, 7.5),
		LEAST(10, '3', '7'),
		LEAST('c', 'a', 'b'),
		LEAST('c', 'a', 'b', NULL);

[実行結果]

MySQL の LEAST()・GREATEST() 1

1 行は引数が全て整数なので、整数で比較して一番小さい 3 が返っています。

2 行は 7.5 があるので、引数が DECIMAL に変換されて比較され、一番小さい 3.0 が返っています。

3 行目は数字と文字列が混ざっているので、文字列に変換されて比較されるので、文字列として比較して一番小さい '10' が返っています。

4 行目は引数が全て文字列なので、文字列で比較して一番小さい 'a' が返っています。

5 行目は引数に NULL があるので、他の引数にかかわらず NULL が返っています。


MySQL の GREATEST() 関数の使い方

MySQL の GREATEST() 関数は、複数の引数を受け取り、その中で一番大きい引数を返す関数です。

比較のルールなどは、一番小さい値を返すか、一番大きい値を返すかが違うだけで、LEAST() 関数と同じです。

GREATEST(引数1, 引数2, 引数3, ..., 引数N);

GREATEST() 関数を使ってみましょう。

SELECT 	GREATEST(10, 3, 7),
		GREATEST(10, 3, 7.5),
		GREATEST(10, '3', '7'),
		GREATEST('c', 'a', 'b'),
		GREATEST('c', 'a', 'b', NULL);

[実行結果]

MySQL の LEAST()・GREATEST() 2

1 行は引数が全て整数なので、整数で比較して一番大きい 10 が返っています。

2 行は 7.5 があるので、引数が DECIMAL に変換されて比較され、一番大きい 10.0 が返っています。

3 行目は数字と文字列が混ざっているので、文字列に変換されて比較されるので、文字列として比較して一番大きい '7' が返っています。

4 行目は引数が全て文字列なので、文字列で比較して一番小さい 'c' が返っています。

5 行目は引数に NULL があるので、他の引数にかかわらず NULL が返っています。


以上、MySQL の LEAST() と GREATEST() 関数についてご説明しました。

© 2024 MySQL 入門