0
MYSQLでストアドプロシージャを書く方法を学び始めています。私はロードブロッキングを打ちました。mysqlストアドプロシージャからレコードを表示
私は、次のコードを書きました:私は繰り返し文の後に発生したselect文の結果を表示したいと思い
DELIMITER $$
DROP PROCEDURE IF EXISTS `emscribedx`.`countcodes` $$
CREATE PROCEDURE `emscribedx`.`countcodes`()
BEGIN
declare doneprocessing int default 0;
declare thisaccount varchar(50);
declare countcursor cursor for select acct from patientid where patienttype='P';
declare continue handler for not found
set doneprocessing = 1;
Fetch countcursor into thisaccount;
Repeat
select * from doc_table where acct = thisaccount;
until doneprocessing = 1
END repeat;
close countcursor;
END $$
DELIMITER ;
を。しかし、どうすればいいのですか?ストアドプロシージャを実行すると何も起こりません。
はなぜない代わりにこれを使用、エリオット
これは単なるおもちゃの手順です。私はこのことで足を濡らすためにこれを試しています。私はこれらの結果を返す方法を知りたい。 – Elliott
プロシージャーに単一のSELECTステートメントが含まれている場合は、呼び出されたときに照会結果が戻されます。複数の 'SELECT'が含まれている場合は、最初のものを返します(私が間違っていない場合)。 – bfavaretto
@bfavaretto:それは完全に正しいわけではありません。 MySQLはストアドプロシージャ内で実行されるすべてのステートメントの結果を返しますが、クライアントはそのような複数の結果セットの読み込みをサポートしていません。たとえば、PDOでは['PDOStatement :: nextRowset'](http://www.php .net/manual/ja/pdostatement.nextrowset.php)を使って移動します。 – eggyal