次の MySQL ステートメントがあるとします。
SELECT COUNT(downloads) as dl<br>
FROM files<br>
GROUP BY file_id
これで、最初のクエリの結果が生成されました。dl
では、その直後に別の選択クエリを呼び出すにはどうすればよいでしょうか? で別の操作を実行したいためdl
です。必要がない限り、同じクエリで実行したくありません。
次の MySQL ステートメントがあるとします。
SELECT COUNT(downloads) as dl<br>
FROM files<br>
GROUP BY file_id
これで、最初のクエリの結果が生成されました。dl
では、その直後に別の選択クエリを呼び出すにはどうすればよいでしょうか? で別の操作を実行したいためdl
です。必要がない限り、同じクエリで実行したくありません。
次のように言って@dl
、後のクエリで使用できます。
SELECT COUNT(downloads) as dl
into @dl
FROM files
GROUP BY file_id
質問はかなり曖昧です。
mysqldにクエリを送信しているものなら何でも変数に保存できます。mysqldのセッション変数に保存できます。あなたはそれをmysqlのテーブルに書くことができます。現在のクエリを、値を使用するクエリに結合するだけです。両方の(すべて?)クエリをプロシージャでラップできます。結果のキャッシュを有効にしている場合は、クエリを再度実行して、キャッシュから値をフェッチできます。
複数の行を保存している場合は、一時テーブルを作成できます。
CREATE TEMPORARY TABLE downloads_per_file (id int, dl int);
INSERT INTO downloads_per_file
SELECT file_id, COUNT(downloads) as dl
FROM files
GROUP BY file_id
同じセッション内で、他のテーブルと同じように一時テーブルを使用できます。接続が閉じられると、テーブルは破棄されます。