mysql - 如何在 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)
感谢您的帮助,请原谅我的英语。
解决方案
MySQL 函数只能返回一个值。您可以使用存储过程,而不是:
DELIMITER $$
CREATE PROCEDURE `getCharacters`()
BEGIN
SELECT *
FROM `characters`
WHERE `level` > 50;
END $$
DELIMITER ;
CALL getCharacters;
有关存储过程和函数之间区别的更多信息可以在这里找到:MySQL 存储过程与函数,我什么时候使用?
推荐阅读
- asp.net-core - 您如何从 Azure Active Directory 中获取搭建的 Weather Forecast Api 将接受的访问令牌?
- .net - PowerShell 获取 Linux 和 OSX 中进程的命令行参数
- javascript - 如何确定当我在输入字段中输入新数字时脚本/
标签刷新?
- python - 在 selenium 中使用 for 循环时,Python 会立即关闭
- php - preg_replace 保留字母数字 + 拉丁语 + 表情符号
- python-3.x - 如何在不覆盖当前记录的情况下预填充和保存 Django 模型记录?
- c++ - bar(type (&)[x]) 定义与 bar(type (&)[x]) 声明不匹配?
- palantir-foundry - 在转换函数中更改输出数据集路径
- google-oauth - GoogleIdTokenVerifier.verify 始终返回 null
- python - 使用python在不同网络上的两台计算机之间发送一个字符串