2016-12-29 92 views
0

如何聲明輸出參數以返回數組或記錄集?mysql存儲過程輸出多列

如果我試圖讓只有一列這項工作確定

enter code here 
CREATE PROCEDURE `test`(
    IN invar VARCHAR(255), 
    OUT outvar VARCHAR(255) 
) 
BEGIN 
    SELECT col1 INTO outvar FROM my_table WHERE col1 = invar; 
END; 

但是,如果我試圖讓許多列,我不知道該怎麼辦

CREATE PROCEDURE `test`(
    IN invar VARCHAR(255), 
    OUT outvar VARCHAR(255) 
) 
BEGIN 
    SELECT col1,col2 INTO outvar FROM my_table WHERE col1 = invar; 
END; 

隨着outvar VARCHAR(255 )據我所知,我不能,因爲是一個字符串類型,但我需要聲明outvar與多列工作

我需要走出s ome like this「Column_name1」=>「Value」,「Column_name2」=>「Value2」用於PHP with $ output_result-> fetch()

回答

1

您需要聲明另一個變量並將col1和col2的值存儲在不同的變量。試試這個:

CREATE PROCEDURE `test`(
    IN invar VARCHAR(255), 
    OUT outvar1 VARCHAR(255), 
    OUT outvar2 VARCHAR(255), 
) 
BEGIN 
    SELECT col1,col2 INTO outvar1,outvar2 FROM my_table WHERE col1 = invar; 
END; 

這裏COL1值將在outvar1和COL2值將在outvar2

1

您也可以嘗試CONCAT。但後來在php代碼中,你需要爆炸。

CREATE PROCEDURE test( IN殷鋼VARCHAR(255), OUT outvar VARCHAR(255) ) BEGIN SELECT CONCAT(COL1, 「」,COL2)INTO outvar FROM MY_TABLE WHERE COL1 =殷鋼; END;