試しましたが失敗しました:
mysql> select max(1,0);
エラー1064(42000):SQL構文にエラーがあります。 1行目 で near '0)'を使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアル を確認してください。
GREATEST() を使用します
例えば。:
SELECT GREATEST(2,1);
注:その時点でいずれかの単一値にnullが含まれている場合は常に、この関数は常にnullを返します(ユーザー@ sanghavi7に感謝)
行のセット全体で列の最大値を取得するには:
SELECT MAX(column1) FROM table; -- expect one result
各行の列、リテラル、または変数のセットの最大値を取得するには:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
GREATEST 関数はnull入力不可フィールドで使用できます。この値のいずれか(または両方)がNULLになる可能性がある場合は、使用しないでください(結果はNULLになる可能性があります)。
select
if(
fieldA is NULL,
if(fieldB is NULL, NULL, fieldB), /* second NULL is default value */
if(fieldB is NULL, field A, GREATEST(fieldA, fieldB))
) as maxValue
NULLを好みのデフォルト値に変更できます(両方の値がNULLの場合)。