mysql - 如何在 MySQL 的函数中返回选择的结果?

标签 mysql sql phpmyadmin

我是一名学生,我试图让我的函数返回我选择的结果,但我不知道要在 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)

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

最佳答案

一个 MySQL 函数只能返回一个值。您可以改用存储过程:

DELIMITER $$

CREATE PROCEDURE `getCharacters`() 
BEGIN

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

END $$

DELIMITER ;

CALL getCharacters;

可以在此处找到有关存储过程和函数之间差异的更多信息:MySQL stored procedure vs function, which would I use when?

关于mysql - 如何在 MySQL 的函数中返回选择的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54118446/

相关文章:

java - 在 mac os 中使用 netbeans 设置 phpmyadmin

mysql - 无法将表类型更改为 MyISAM

MySQL 子查询和临时表很慢

php - WHEN 子句中具有多个条件的 MySQL CASE

sql - Liquibase for/for 每个操作(迁移表数据)

php - 比较 Mysql 中的行以查看其他表中不存在哪些值的最快方法

sql - 将 2 个 CTE 替换为一个

mysql - 在 MySQL 中组合多个查询结果(按列)

mysql - 从查询结果填充表 (mysql)

PHPMYADMIN 未在 Ubuntu12.04 中加载