Je souhaite utiliser une procédure stockée pour définir la clause IN d'une instruction select. Ceci est (une version simplifiée de) ce que je suis en train de faire:mySQL - Utilisation des résultats de procédure stockée pour définir une instruction IN
SELECT * FROM myTable WHERE columnName IN (CALL myStoredProc)
myStoredProc
effectue une logique complexe dans la base de données et retourne une liste de valeurs correspondantes possibles pour columnName
. La déclaration ci-dessus ne fonctionne pas évidemment. L'instruction select peut être exécutée dans un autre prodecure stocké si cela fait une différence.
Est-ce possible dans mySQL?
La procédure stockée renvoie des résultats qui sont une colonne d'entiers. Ai-je besoin de convertir ceci en une chaîne délimitée par des virgules? Aussi, j'ai essayé d'implémenter votre code (et j'ai ajouté SET @the_query ...), mais il pense que myStoredProc() est une fonction et donne l'erreur FUNCTION database.myStoredProc n'existe pas. (Code d'erreur 1305) – Ryan
Également ajouté "SET". :) Oui, votre procédure doit être une fonction pour retourner quoi que ce soit. Si vous utilisez une table temporaire de toute façon, cela peut rester une procédure, bien sûr. – AndreKR