私はMySQLで関数を作成しようとしています:
SQLコードは次のとおりです。
CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal)
RETURNS decimal
DETERMINISTIC
BEGIN
DECLARE dist decimal;
SET dist = SQRT(x1 - y1);
RETURN dist;
END;
次のエラーが表示されます。
#1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL
server version for the right syntax to use near '' at line 10
PhpMyAdminでこのcreateステートメントを実行しています。この機能の何が問題になっていますか?
この種のエラーを回避するには、;
区切り文字を$$
のようなものでオーバーライドする必要があります。
関数定義の後、区切り文字を;
に戻すことができます。
これは動作するはずです:
DELIMITER $$
CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal)
RETURNS decimal
DETERMINISTIC
BEGIN
DECLARE dist decimal;
SET dist = SQRT(x1 - y1);
RETURN dist;
END$$
DELIMITER ;
MySQL create関数の構文:
DELIMITER //
CREATE FUNCTION GETFULLNAME(fname CHAR(250),lname CHAR(250))
RETURNS CHAR(250)
BEGIN
DECLARE fullname CHAR(250);
SET fullname=CONCAT(fname,' ',lname);
RETURN fullname;
END //
DELIMITER ;
クエリでこの関数を使用する
SELECT a.*,GETFULLNAME(a.fname,a.lname) FROM namedbtbl as a
SELECT GETFULLNAME("Biswarup","Adhikari") as myname;
このビデオでmysql関数の作成方法とクエリでの使用方法をご覧ください