Créer une fonction avec des arguments optionnels dans MySQL
Je veux créer une fonction avec des arguments optionnels dans MySQL. Par exemple, je veux créer la fonction qui calcule la moyenne de ses arguments. J'ai créer une fonction de cinq arguments, mais lorsque l'utilisateur passe juste à deux arguments de la fonction, alors il devrait encore exécuter et de retour à la moyenne des deux arguments.
connexes : stackoverflow.com/questions/91150/mysql-stored-procedure
dupliquer: stackoverflow.com/questions/12652241/...
Il ne peut pas être fait. Les réponses ci-dessous sont des solutions de contournement.
dupliquer: stackoverflow.com/questions/12652241/...
Il ne peut pas être fait. Les réponses ci-dessous sont des solutions de contournement.
OriginalL'auteur Krunal | 2011-02-03
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas définir des paramètres facultatifs dans MySQL procédures stockées.
Vous pouvez cependant régler les paramètres facultatifs dans une base de données MySQL UDF.
Vous faire savoir que MySQL a un AVG fonction d'agrégation?
Solution de contournement
Si vous pouvez faire face à la laideur de cette solution de contournement voici samplecode qui utilise une chaîne séparée par des virgules avec des valeurs en entrée et renvoie la moyenne.
Utilisation concat_ws pour nourrir la fonction.
Vous pouvez également écrire un UDF dans C(++) ou Delphi Et Lazarus.
SQL ERROR(1064) You have an error in your SQL Syntax...
Je ne pense pas que cette déclaration est correcte: "Vous pouvez cependant régler les paramètres facultatifs dans une base de données MySQL UDF". Vous devriez probablement vous dire quelque chose comme ceci: "Vous ne pouvez pas définir un paramètre facultatif dans une base de données MySQL UDF, mais ici, c'est un travail autour de". Vous ne pouvez pas avoir un paramètre facultatif dans une procédure Stockée, et je suis sûr que la même chose est vraie de l'UDF.
un fichier UDF est quelque chose de différent à partir d'une base de données mysql fonction de l'utilisateur. C'est une fonction que vous écrivez en C/C++, qui peut être importé dans MySQL, et il prend en charge les arguments optionnels.
OriginalL'auteur Johan
Bien que loin d'être une solution idéale, voici comment j'ai résolu en option paramètres d'une fonction concat j'avais besoin:
Remarque: Cela signifie que vous devez appeler la méthode qui correspond au nombre d'arguments.
OriginalL'auteur Ryan Shillington
Une autre approche est de passer seulement un "super" paramètre qui est une chaîne avec des virgules dans il séparant les paramètres réels. Mysql procédure peut alors analyser le "super" paramètre dans les différents paramètres réels.
Exemple:
OriginalL'auteur giwyni