首页 > 解决方案 > 我无法返回值。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

标签: mysqlfunction

解决方案


推荐阅读