Comment passer une liste d'ID à une procédure stockée MySQL?

Je suis en train d'écrire une procédure stockée qui doit passer ses arguments pour IN (..) partie de la requête dans le corps de la procédure, comme ceci:

DELIMITER //

CREATE PROCEDURE `get_users_per_app` (id_list TEXT)
BEGIN
    SELECT app_id, GROUP_CONCAT(user_id) FROM app_users WHERE app_id IN (id_list) GROUP BY app_id;
END//

DELIMITER ;

De toute évidence, cela ne fonctionne pas car lorsque je passe d'une valeur textuelle, id_list est interpolée comme un entier, et seulement pour la première ID est considéré et utilisé à l'intérieur de IN() condition.

Je me rends compte que ce type de procédure pourrait plutôt être remplacé par le contenu de la requête, mais je pense que ma question est toujours debout - ce que si j'avais besoin de passer ce genre de données?

Je me rends compte aussi que cette approche de la requête peut ne pas être considéré comme la meilleure pratique, mais dans mon cas d'utilisation, il est en fait mieux que de retourner une liste à plat de ID-ID de paires..

source d'informationauteur mr.b