【发布时间】:2013-08-05 15:53:41
【问题描述】:
我们正在从 PostgreSQL 迁移到 MySQL。
基本上,我想在 MySQL 中循环一个结果。
SELECT col1 FROM table1;
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;
【问题讨论】:
标签: mysql loops stored-procedures iteration