Vilken returtyp har din nuvarande lagrade procedur? Du talar om "en lista", så TEXT?
Det kanske finns ett enklare sätt, men en sak du kan göra (i en annan lagrad procedur) är att skapa en annan fråga.
För att göra det måste vi kringgå två begränsningar av MySQL:a) För att exekvera dynamisk SQL i en lagrad procedur måste det vara en förberedd sats. b) Förberedda satser kan endast skapas av användarvariabler. Så hela SQL är:
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;
Om du pratar om att returnera en resultatuppsättning från en lagrad rutin och sedan använda den som tabell, är det inte möjligt. Du måste skapa en tillfällig tabell för att kringgå denna begränsning .