「みんな教えて! 選手権!!」開催のお知らせ

例えば、sqlと言うテーブルに下記のsqlの内容が入っている。
クエリー1として、
SELECT TOP 5 Mail.*
FROM Mail;

次に、そのクエリー1を使って
DELETE クエリ1.*
FROM クエリ1;

上記の行が入っている。

ここでは最終的には2行目の削除クエリを実行させたい。また、ここで
はこの削除クエリーの後に有る処理を実行して、その後に再度この削除
処理を繰り返す。最終的にはこの削除対象のテーブルのデータが空にな
る迄この処理を実行させたい。

然し、先ずはこのテーブルに格納されているsqlをmysqlで実行させる方
法が分かりません。

mysqlにevalの機能は有るのでしょうか。
宜しく、お願いします。

A 回答 (3件)

>未だ、その関数とかプロシージャはやった事が無いので。

この場合の
>コードを例示してほしいのですが。

ごめんなさい
説明の仕方が悪かったですね

テーブルに書かれたSQL文を実行する構文はありません。
関数かプロシージャで対応してください
    • good
    • 0

ちなみに簡単なSQL文を実行するプロシージャ



DROP PROCEDURE IF EXISTS P_TEST;
DELIMITER //
CREATE PROCEDURE P_TEST(IN s TEXT)
BEGIN
SET @sql=s;
PREPARE stmt from @sql;
EXECUTE stmt;
END
//
DELIMITER ;

ここで例えば・・・
CALL P_TEST('SELECT 1 AS X;');
を実行する
    • good
    • 0
この回答へのお礼

有難う御座います。

今迄は、単にテーブルを作ったり単純な更新クエリーだけだったので分
かりませんでした。やって見ます。有難う御座いました。

お礼日時:2016/01/08 01:04

テーブルに保存するのではなくプロシージャや関数で処理してみては?

    • good
    • 0
この回答へのお礼

有難う御座います。

未だ、その関数とかプロシージャはやった事が無いので。この場合の
コードを例示してほしいのですが。

宜しくお願いします。

お礼日時:2016/01/03 08:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報