如何声明输出参数以返回数组或记录集?
如果我尝试只使用一列就可以了
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)我理解我不能因为是STRING类型,但我需要使用哪种类型来声明outvar以使用多列
我需要得到一些像这样的" Column_name1" => "值" ," Column_name2" => "值2"用于PHP的$ output_result-> fetch()
答案 0 :(得分: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 :(得分:1)
你也可以试试concat。但后来在PHP代码中你需要爆炸。
CREATE PROCEDURE test
(
IN invar VARCHAR(255),
OUT outvar VARCHAR(255)
)
开始
SELECT CONCAT(col1,“,”,col2)INTO outvar from my_table WHERE col1 = invar;
END;