- - PR -
[MySQL]動的SQLの実行結果を取得したい
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2006-10-17 17:15
MySQLのストアドプロシージャを使っていますが、
動的SQL文(SELECT文)を実行した結果を取得する方法が、 いろいろ調べましたがわかりません。 今のところ、以下のコードのように書くと、 動的SQLは実行できますが、結果を取得して、 その結果を使って処理することが今のスキルではできません。 -------------------------------------------- /* 動的SQLを格納する変数 */ DECLARE s_sql text; SET s_sql = 'select count(*) from 〜'; /* 普通に動的SQLを実行する場合 */ prepare query from s_sql; execute query; deallocate prepare query; -------------------------------------------- すみませんが、アドバイスお願いします。 |
|
投稿日時: 2006-10-23 07:43
返信が遅れましたが、ユーザ変数を使用することで可能です
@cntがユーザ変数です ユーザ変数についてはMYSQLのマニュアル6.1.4.に説明があります PREPARE stmt_name FROM "select count(*) INTO @cnt from t_test"; EXECUTE stmt_name ; if @cnt <= 0 then 提示されたコードではありませんが EXECUTEの引数USINGもユーザ変数にする必要があります PREPARE ではユーザ変数を使用するようです mysql prepare storedprocedure faqで検索 forums.mysql.com/read.php?98,117381,117381 forums.mysql.com/read.php?98,117381,117393#msg-117393 Prepared statements can only be executed from '@' variables. [ メッセージ編集済み 編集者: 99ri 編集日時 2006-10-23 10:45 ] |
|
投稿日時: 2006-10-23 16:33
99riさん、ありがとうございます!
邪道手段ではありましたが、メモリテーブルへの件数格納を行なって、 問題解決を図ったんですが、99riさんの方法をとることで、 最も簡単に実現することができました。 |
1
