Jaki typ zwrotu ma Twoja bieżąca procedura składowana? Mówisz o „liście”, więc TEKST?
Być może istnieje prostszy sposób, ale jedną rzeczą, którą możesz zrobić (w innej procedurze składowanej), jest utworzenie innego zapytania.
Aby to zrobić, musimy obejść dwa ograniczenia MySQL:a) Aby wykonać dynamiczny SQL wewnątrz procedury składowanej, musi to być przygotowana instrukcja. b) Przygotowane zestawienia można tworzyć wyłącznie ze zmiennych użytkownika. Tak więc kompletny kod SQL to:
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;
Jeśli mówisz o zwróceniu zestawu wyników z zapisanej procedury, a następnie użyciu go jako tabeli, nie jest to możliwe. Musisz utworzyć tabelę tymczasową, aby obejść to ograniczenie .