对于mysql过程,我是否需要指定INTO来显示结果?

对于mysql过程,我是否需要指定INTO来显示结果?,mysql,Mysql,是否需要为要从过程中发送的每一列指定INTO参数 如果我有以下资料: SELECT col1, col2, col3, col4 FROM table WHERE col1 = 'something' 是否需要为每列指定到?是,请参见示例 BEGIN SELECT password , active_flg , lastname

是否需要为要从过程中发送的每一列指定
INTO
参数

如果我有以下资料:

SELECT col1, col2, col3, col4
FROM
table
WHERE
col1 = 'something'
是否需要为每列指定到?

是,请参见示例

 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 
从链接中获取:
这取决于你想要达到的目标

CREATE PROCEDURE testproc ()
BEGIN
SELECT col1, col2, col3, col4
FROM
table
WHERE
col1 = 'something'
END;
将返回的结果类似于选择一个表,可以得到多行,返回

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行,您可以这样调用它 调用testproc(@col1、@col2、@col3、@col4); 没有返回可视的内容,尽管设置了变量,但这些变量可以在其他查询中使用,也可以一起调用 选择@col1、@col2、@col3、@col4; 或

从其他表中选择blah,其中col2=@col2


您的存储过程还可以包含多个选择,其中它在内部使用这些变量输入到新的选择中,并使用IF-THENs等。

谢谢您,先生。。这就是我需要知道的:)我不清楚INTO是否只在需要计算或其他操作时使用,但我可以看出INTO总是被使用。还有一个问题。。我需要详细说明吗?谢谢你的链接,它也回答了我的最后一个问题。干杯。是的,它可以和INTO关键字一起工作,也可以不工作,所以我的问题是。