首页 > 解决方案 > 如何在 MySQL 的函数中返回 select 的结果?

问题描述

我是一名学生,我试图让我的函数返回我的选择结果,但我不知道在RETURN.

例如,我尝试使用数学运算创建函数,并且它可以正常工作,例如:

DELIMITER $$
CREATE FUNCTION `getScore`(`a` INT, `b` INT, `c` INT) RETURNS INT
BEGIN
    RETURN a + b + c;
END$$
DELIMITER ;

SELECT getScore(0.3, 0.4, 0.5);

但我的问题出在这个函数中,我不知道该放入什么RETURN或如何检查该函数:

DELIMITER $$

CREATE FUNCTION `getCharacters`() RETURN 
BEGIN

        SELECT * 
        FROM `characters` 
        WHERE `level` > 50

END$$

DELIMITER ;

SELECT getCharacters();

我有下一个错误:

A "RETURNS" keyword was expected. (near "RETURN" at position 34)

感谢您的帮助,请原谅我的英语。

标签: mysqlsqlphpmyadmin

解决方案


MySQL 函数只能返回一个值。您可以使用存储过程,而不是:

DELIMITER $$

CREATE PROCEDURE `getCharacters`() 
BEGIN

        SELECT * 
        FROM `characters` 
        WHERE `level` > 50;

END $$

DELIMITER ;

CALL getCharacters;

有关存储过程和函数之间区别的更多信息可以在这里找到:MySQL 存储过程与函数,我什么时候使用?


推荐阅读