我是否需要为我希望从程序中发送的每一列指定INTO
参数?
如果我有以下内容:
SELECT col1, col2, col3, col4
FROM
table
WHERE
col1 = 'something'
我是否需要为每列指定INTO?
答案 0 :(得分:0)
是的,参见示例
BEGIN
SELECT password ,
active_flg ,
lastname ,
firstname ,
gender_code ,
birth_dttm
INTO p_password ,
p_active_flg ,
p_lastname ,
p_firstname ,
p_gender_code ,
p_birth_dttm
FROM students
WHERE student_id = p_student_id ;
END
从链接中获取: http://www.sqlinfo.net/mysql/mysql_stored_procedure_SELECT.php
答案 1 :(得分:0)
这取决于你想要达到的目标。
CREATE PROCEDURE testproc ()
BEGIN
SELECT col1, col2, col3, col4
FROM
table
WHERE
col1 = 'something'
END;
返回类似于SELECT表的结果,可以获得多行,返回。
CREATE PROCEDURE testproc (OUT col1 INT, OUT col2 VARCHAR(255), OUT col3 INT, OUT col4 INT)
BEGIN
SELECT col1, col2, col3, col4 INTO col1, col2, col3, col4
FROM
table
WHERE
col1 = 'something'
END;
只能返回1行,你可以这样调用它 CALL testproc(@ col1,@ col2,@ col3,@ col4); 虽然设置了变量,但这些变量可以在其他查询中使用或者只是一起调用 SELECT @ col1,@ col2,@ col3,@ col4; OR
从othertable中选择blah,其中col2 = @ col2;
您的存储过程还可以包含多个选项,它在内部使用这些变量来输入新的选择,使用IF THEN等等。