Hvilken returtype har din nuværende lagrede procedure? Du taler om "en liste", så TEKST?
Måske er der en nemmere måde, men én ting du kan gøre (i en anden lagret procedure) er at bygge en anden forespørgsel.
For at gøre det skal vi omgå to begrænsninger af MySQL:a) For at udføre dynamisk SQL inde i en lagret procedure, skal det være en forberedt sætning. b) Forberedte udsagn kan kun oprettes ud fra brugervariabler. Så den komplette SQL er:
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;
Hvis du taler om at returnere et resultatsæt fra en lagret rutine og derefter bruge det som tabel, er det ikke muligt. Du skal lave en midlertidig tabel for at omgå denne begrænsning .