Jaký typ návratu má vaše aktuální uložená procedura? Mluvíte o „seznamu“, takže TEXT?
Možná existuje jednodušší způsob, ale jedna věc, kterou můžete udělat (uvnitř jiné uložené procedury), je vytvořit další dotaz.
Abychom toho dosáhli, musíme obejít dvě omezení MySQL:a) Chcete-li provést dynamické SQL uvnitř uložené procedury, musí to být připravený příkaz. b) Připravené výpisy lze vytvářet pouze z uživatelských proměnných. Kompletní SQL je tedy:
SET @the_list = myStoredProc();
SET @the_query = CONCAT('SELECT * FROM myTable WHERE columnName IN (' , @the_list , ')');
PREPARE the_statement FROM @the_query;
EXECUTE the_statement;
Pokud mluvíte o vrácení sady výsledků z uložené rutiny a jejím následném použití jako tabulky, není to možné. Chcete-li obejít toto omezení , musíte vytvořit dočasnou tabulku .