2012-01-12 4 views
5

を保存:は機能

CREATE FUNCTION `max`(a INT, b INT) RETURNS INT 
BEGIN 
    IF a > b THEN RETURN a; ELSE RETURN b; END IF; 
END 

CREATE FUNCTION `max`(a DATE, b DATE) RETURNS DATE 
BEGIN 
    IF a > b THEN RETURN a; ELSE RETURN b; END IF; 
END 

MySQLは私にエラーを与える:

FUNCTION max already exists

は、私は本当に明確な名前を付ける必要がありますmax_tinyint,max_int,max_date,max_datetimeなどの機能には?

パラメータとして任意の型を受け入れる関数を作成できればさらに簡単になります。

+0

不機嫌な答えをやりたいGREATEST()機能を有しており、:だからあなたのための唯一の方法は、異なる名前

UPDで関数を作成することです。 ... –

+0

遂にそれが!?いつから? – AndreKR

+0

まあ、私は集計関数を意味しましたが、最大の機能を持っています –

答えて

12

mysqlは関数のオーバーロードをサポートしていません。はい、mysqlはあなたがMySQLがすでにMAX機能を持っていることだろう

+0

OMG、私は何年もMySQLを使ってきました。これはどうして私の心を忘れることができましたか?ありがとう、ありがとう、ありがとう。 – AndreKR