我是否需要爲要發送到過程的每個列指定參數INTO
?對於mysql程序,我是否需要指定INTO來顯示結果?
如果我有以下幾點:
SELECT col1, col2, col3, col4
FROM
table
WHERE
col1 = 'something'
我需要指定INTO爲每列?
我是否需要爲要發送到過程的每個列指定參數INTO
?對於mysql程序,我是否需要指定INTO來顯示結果?
如果我有以下幾點:
SELECT col1, col2, col3, col4
FROM
table
WHERE
col1 = 'something'
我需要指定INTO爲每列?
是,見例如
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
這取決於你想要達到的目的。
CREATE PROCEDURE testproc()
BEGIN
SELECT col1, col2, col3, col4
FROM
table
WHERE
col1 = 'something'
END;
返回的結果類似於SELECTing一個表,你可以得到多行,返回。
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; 或
從othertable中選擇blah where col2 = @ col2;
你的存儲過程,也可以包含多個選擇的地方使用這些變量對內部投入新的選擇,與IF THENs等,等
你嘗試了嗎? – 2010-01-07 11:08:48
是的,它適用於INTO關鍵字以及沒有,因此我的問題。 – jim 2010-01-07 11:16:42