获取记录时出现Mysql存储过程问题

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

我有一个数组中的id列表。我想使用这些id从表“user”获取详细信息


我需要一个存储过程,在此过程中,我将发送id数组,并在返回数组结果时获取每个id的数据。

您可以尝试以下方法:

  • A:使用附加表(可能是临时表)存储过程中需要的ID值,然后将此表连接到另一个表
  • B:将ID值作为字符串参数传递到过程中,然后构建结果SQL语句,并使用
示例(案例A):

示例(案例B):


添加了两个示例)我将尝试这两个示例
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);