Thủ tục được lưu trữ hiện tại của bạn có kiểu trả về nào? Bạn đang nói về "một danh sách", vậy TEXT?
Có thể có một cách dễ dàng hơn, nhưng một điều bạn có thể làm (bên trong một thủ tục được lưu trữ khác) là tạo một truy vấn khác.
Để làm được điều đó, chúng ta cần khắc phục hai hạn chế của MySQL:a) Để thực thi SQL động bên trong một thủ tục được lưu trữ, nó cần phải là một câu lệnh được chuẩn bị sẵn. b) Chỉ có thể tạo câu lệnh chuẩn bị từ các biến người dùng. Vì vậy, SQL hoàn chỉnh là:
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;
Nếu bạn đang nói về việc trả về một tập hợp kết quả từ một quy trình được lưu trữ và sau đó sử dụng nó dưới dạng bảng, thì điều đó là không thể. Bạn cần tạo một bảng tạm thời để khắc phục hạn chế này .