mysql - 我无法返回值。ERROR 1415 (0A000): 不允许从函数返回结果集
问题描述
我正在 MySQL 中编写一个函数,该函数必须检查 PHP 表单中的值是否存在于数据库中。
我试图从我的函数中返回一个 VARCHAR 变量,该变量是由一个 CONCAT 函数在 SELECT...CASE 语句中设置的,但我仍然看到一个错误。
CREATE FUNCTION checkNewUser(login VARCHAR(30),password VARCHAR(255),email VARCHAR(255))
RETURNS VARCHAR(255)
BEGIN
set @result = "";
SELECT user_login,user_password,user_email,
CASE
WHEN user_login = login THEN @result = CONCAT(@result," This login is not avaible!")
WHEN user_password = password THEN @result = CONCAT(@result," This password is not avaible!")
WHEN user_email = email THEN @result = CONCAT(@result," This email is not avaible!")
ELSE @result = NULL
END
FROM users;
RETURN @result;
END//
我想返回一个信息,表单中的哪个值是错误的。但我仍然看到一个错误:ERROR 1415 (0A000): Not allowed to return a result set from a function
解决方案
推荐阅读
- azure - 查询未返回 TimeGenerated 列。请编辑查询并包含 TimeGenerated 列
- laravel - 错误:运行 composer update 命令后在 laravel 8 中使用护照 10
- sql - 用连接在 SQL 中求和 2 行
- python - TypeError:注册的事件必须是协程函数discord.py
- spring - 当从 amqp 转换消息发生错误时,弹簧整数 amqp 不会重试
- c# - C# VSTO - 如何将活动表保存到新的工作簿/新文件?
- python - 在python中读取具有动态名称的配置文件条目
- r - 有没有办法用 RD 对象制作数据框?
- laravel - Laravel 8 上的 League/flysystem-aws-s3-v3 其他软件包需要较低版本
- r - 在 for 循环期间丢失行名