2012-03-25 78 views
1

在MySQL我試圖寫一個存儲過程,而執行以下操作:MySQL的存儲過程變量

  1. 運行,返回1行2列(這樣兩條信息)SELECT查詢。
  2. 運行一個INSERT查詢,該查詢包含返回的兩個先前值以及傳入存儲過程的幾個參數。

我本來想我可以的兩條信息從步驟1存儲到一個變量,然後通過這些進入第2步:一些閱讀後,雖然似乎在MySQL的一個變量只能容納1件數據。我怎樣才能將步驟1中的2條信息放入步驟2中的INSERT語句中?

謝謝!

+0

看吧:HTTP://stackoverflow.com/questions/2450529/selecting-multiple-fields-into-multiple-variables -in-a-mysql-stored-procedure – giorashc 2012-03-25 14:05:26

回答

2

您可以使用INSERT INTO ... SELECT。 例,

INSERT INTO table1 
SELECT col1, 
     col2, 
     value1, 
     value2 
FROM table2 

在這裏,你從table2選擇col1col2並添加兩個新的自定義值value1value2到結果集。這個新的4列被插入到table1

0

創造這樣的事情:

CREATE PROCEDURE InsertThis(IN paramA varchar(50), IN paramB int, INT paramC varchar(50)) 
BEGIN 
    INTO INTO tableB(fieldA, fieldB, fieldC, fieldD) 
    SELECT paramA as fieldA, paramB as fieldB, fieldC, fieldD 
    FROM tableA 
    WHERE fieldC = paramC; 
END 
+0

這裏不需要條件 – 2012-03-25 14:18:00

+1

這只是一個示例bro。除了使用'LIMIT'外,OP還可以使用什麼來顯示2行? – 2012-03-25 14:24:15