2010-08-03 5 views
0

J'ai une fonction définie par l'utilisateur.Une variable peut-elle contenir plusieurs enregistrements dans des fonctions définies par l'utilisateur dans MySQL?

Dans cette fonction, j'ai déclaré une variable de type datetime.

J'affecte le résultat d'une requête dans cette variable. Et je retourne cette valeur assignée. Il ressemble à

delimiter$$ 
drop function if exists getQEDate$$ 
create function getQEDate() returns datetime 
begin 

    declare qedate datetime; 
    select date into qedate from qenddates where ....; 

    return qedate; 
end$$ 
delimiter ; 

En accédant à cette fonction j'obtiens une exception comme "renvoie plus d'une rangée ...". Donc je pense que cette erreur est survenue lors du renvoi du résultat. Cela signifie que la variable qedate peut contenir plus d'une ligne.

L'analyse ci-dessus est-elle logique?

Répondre

1

Il est probable que votre requête renvoie plus d'une ligne et qu'elle ne peut pas stocker cela dans une variable. Si vous attendez seulement une ligne, vous devriez vérifier votre clause where ou ajouter LIMIT 1 à la fin de la requête dans la fonction.

Je devine puisque je ne peux pas voir vos données ou votre clause where :)

+0

Désolé je ne demande pas la solution. Je confirme juste qu'une variable peut contenir plus d'une rangée ou pas. –

+1

Alors la réponse est non. Ça ne peut pas – Cfreak

Questions connexes