如何在MySQL存储过程中存储和迭代结果集?

14

我相对于MySQL存储过程比较陌生,所以希望有人能在这方面为我提供帮助。我想调用我的存储过程(可能传入一个IN参数),并让它执行以下操作:

  1. SELECT一些数据
  2. 遍历记录
  3. 对每条记录中的一些字段执行一些操作,包括根据找到的数据在其他表中进行一些INSERT

我的问题是我不知道如何存储SELECT的数据集并迭代记录。我知道如何declaresetinttext这样的东西,但不是完整的数据集。我该怎么做呢?

谢谢


1
“教我过程化的SQL编程语言”似乎对于StackOverflow的问题来说过于宽泛。您考虑过阅读教程或书籍吗?或者至少看一下MySQL手册?http://www.amazon.com/MySQL-Stored-Procedure-Programming-Harrison/dp/0596100892/ref=tmm_pap_title_0?ie=UTF8&qid=1296599594&sr=8-2 我投票将其关闭,因为这不是一个真正的问题。 - Dan Grossman
1
这几乎不是那种问题。我不知道它包含了什么。"MySQL Cursors"的答案非常有帮助,因为我甚至不知道它的存在。无论如何,还是谢谢。 - Jason
1
没错,仅使用 SQL 语法迭代循环是一种相当不常见的操作。 - TehShrike
如果能像这样迭代就太好了:FOR (id, data) AS SELECT id, data FROM test.t1 BEGIN    ##...做一些事情... END - Ondra Žižka
1个回答

10

这太棒了,我认为这就是我要找的。我甚至不知道这些东西的存在! - Jason

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接