Pourquoi mysql est de donner à l'erreur “n'est Pas autorisé à retourner un ensemble de résultats à partir d'une fonction”?
Je suis en train de créer une base de données MySQL fonction à l'aide de phpMyAdmin et obtenez cette erreur.
#1415 - Not allowed to return a result set from a function
Le code de la fonction est comme ci-dessous
DELIMITER $$
CREATE FUNCTION get_binary_count(a INT, c INT)
RETURNS INT
DETERMINISTIC
BEGIN
DECLARE c1, c2 INT;
SET c1=0;
SET c2=0;
SELECT left_id AS c1 FROM mlm_user_mst WHERE parent_id=a AND left_id>0;
SELECT right_id AS c2 FROM mlm_user_mst WHERE parent_id=a AND right_id>0;
IF(c1>0 AND c2>0)
THEN
SET c=c+1;
SET c=c+get_binary_count(c1,0);
SET c=c+get_binary_count(c2,0);
END IF;
RETURN c;
END$$
DELIMITER ;
Des suggestions?
Merci d'avance
Déjà résoudre dans stackoverflow, veuillez visiter le lien. stackoverflow.com/questions/16177267/...
OriginalL'auteur aslamdoctor | 2012-08-09
Vous devez vous connecter pour publier un commentaire.
Parce que
n'a pas défini la variable c1, il renvoie un ensemble avec une colonne nommée c1
Vous voulez
De même pour c2.
OriginalL'auteur podiluska
c'est parce que vous êtes à l'aide de
SELECT
requêtes dont la sortie n'est pas stocké dans des variables temporaires ou à l'intérieur deFUNCTION
qui doit. La fonction peut retourner qu'une seule valeur. Ainsi, votre code doit être quelque chose comme ceci:ou
OriginalL'auteur Omesh