2014-02-06 26 views
1

我有一個數組中的id列表。我想使用這些ID從表「用戶」中獲取詳細信息。獲取記錄中的Mysql存儲過程問題

我需要一個存儲過程,我將發送ID數組,並將獲得每個ID的數據集返回數組結果。

回答

1

您可以嘗試以下方法:

  • 答:使用附加表,也許暫時的,存儲在你的程序需要ID值,然後再加入該表到另一個表(或多個)。
  • B:將ID值作爲字符串參數傳遞給過程,然後生成結果SQL語句,並使用MySQL prepared statements執行它。

實施例(情形):

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); 
+0

給我一些示例 – Swapnil

+0

兩個示例中加入) – Devart

+0

我會嘗試都示例 – Swapnil