私たちはPostgreSQLからMySQLに移行しています。
基本的には、私は結果を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;
こんにちはWoofmeow、ありがとう。その特定のリンクで与えられたサンプルを試してみます。 –
あなたの歓迎@MichaelArdan。それが正しい答えとしてそれをアップウォークするならば、それは他人を助けることもできる。そうでなければもっと尋ねる。 :) – woofmeow
もう一度Mr. Woofmeowさん。私は、与えられた例の中で「何か」が何をするのだろうと思う。私は、サンプルプロシージャを試して、と言うエラーに終わった:エラーコード:1054. 'フィールドリスト'で未知の列 '完了'。 –