2012-03-25 96 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