MySQL中方法和开发语言中的方法不太一样,MySQL中方法必须要有返回值。
MySQL中方法与储存过程很相似,相比有以下不同点:
- 调用不同,储存过程是用
CALL
调用,方法是用SELECT
调用 - 方法的参数前不能使用
IN
,OUT
,而储存过程是可以使用的 - 方法中在
BEGIN
与END
之间(方法体)如果用SELECT
来查询,必须要有一个变量来接收结果,否则是不允许的,而储存过程没这个限定
示例代码
CREATE FUNCTION `jion_test`(age INT, uname VARCHAR(45), tool VARCHAR(45)) RETURNS varchar(100)
BEGIN
/*
一些代码
*/
RETURN CONCAT(age*2, tool, uname);
END
RETURNS 后面是返回类型, 参数可以没有
调用示例
SELECT jion_test(10, 'MY_NAME', 'MY_TOOL');
# SET @_result = (jion_test(10, 'MY_NAME', 'MY_TOOL'));
还不快抢沙发