我们正在从Postgresql迁移和应用到MySQL.
基本上,我想在MysqL中循环一个结果.
SELECT col1 FROM table1; < ---(1)从此查询中获取结果.
LOOP THROUGH col1Result
SELECT myCol FROM table2 WHERE thisCol = col1Result< ---等于上一个查询的每个结果.
END LOOP;
我也找到了这个参考
http://dev.mysql.com/doc/refman/5.0/en/cursors.html
但是,我坚持这条线.
FETCH cur1 INTO a,b;
这不是将cur1的每一个结果都变成变量a和b吗?
我如何确保我目前在变量a的第一个索引?
这是一个关于如何在我的结尾使用结果的例子(写在Postgresql中).
FOR my_record IN
SELECT DISTINCT col1
FROM table1
WHERE col2 = param1;
LOOP
SELECT DISTINCT col4
FROM table2
WHERE col3 = my_record.col1;
IF true THEN
RAISE EXCEPTION '%','ERROR MESSAGE' || my_record.col1;
END IF
SELECT DISTINCT col5
FROM table3
WHERE col6 = my_record.col1;
IF true THEN
RAISE EXCEPTION '%',ERROR MESSAGE' || my_record.col1;
END IF;
END LOOP;
最佳答案
cur1会读取每行的结果.每次循环它都会得到下一行.所以它第一次循环就会得到第一行.
这将一直持续到循环中断或没有更多行可用(在这种情况下会出现无数据条件).
这将一直持续到循环中断或没有更多行可用(在这种情况下会出现无数据条件).
有关更多信息,请参见this希望能帮助到你.