我有一个数组中的id列表。我想使用这些id来从表“user”中获取详细信息。
我需要一个存储过程,我将发送id的数组,并在返回数组结果中获取每个id的数据。
答案 0 :(得分:1)
您可以尝试以下方式:
示例(案例 A ):
DELIMITER $$
CREATE PROCEDURE procedure1()
BEGIN
SELECT * FROM table1 t1 JOIN table_id t2 ON t1.id = t2.id;
END$$
DELIMITER ;
CREATE TABLE table_id(id INT(11));
INSERT INTO table_id VALUES(1),(2),(3),(4),(5);
CALL procedure1();
示例(案例 B ):
DELIMITER $$
CREATE PROCEDURE procedure1(IN id_param VARCHAR(255))
BEGIN
SET @sql = CONCAT('SELECT * FROM table WHERE id IN (', id_param, ')');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END$$
DELIMITER ;
SET @id = '1,2,3,4,5';
CALL procedure1(@id);