获取记录时出现Mysql存储过程问题
我有一个数组中的id列表。我想使用这些id从表“user”获取详细信息获取记录时出现Mysql存储过程问题,mysql,Mysql,我有一个数组中的id列表。我想使用这些id从表“user”获取详细信息 我需要一个存储过程,在此过程中,我将发送id数组,并在返回数组结果时获取每个id的数据。您可以尝试以下方法: A:使用附加表(可能是临时表)存储过程中需要的ID值,然后将此表连接到另一个表 B:将ID值作为字符串参数传递到过程中,然后构建结果SQL语句,并使用 示例(案例A): 示例(案例B): 添加了两个示例)我将尝试这两个示例 DELIMITER $$ CREATE PROCEDURE procedure1() BE
我需要一个存储过程,在此过程中,我将发送id数组,并在返回数组结果时获取每个id的数据。您可以尝试以下方法:
- A:使用附加表(可能是临时表)存储过程中需要的ID值,然后将此表连接到另一个表
- B:将ID值作为字符串参数传递到过程中,然后构建结果SQL语句,并使用
添加了两个示例)我将尝试这两个示例
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();
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);