0

次の MySQL ステートメントがあるとします。

 SELECT COUNT(downloads) as dl<br>
    FROM files<br>
    GROUP BY file_id

これで、最初のクエリの結果が生成されました。dlでは、その直後に別の選択クエリを呼び出すにはどうすればよいでしょうか? で別の操作を実行したいためdlです。必要がない限り、同じクエリで実行したくありません。

4

3 に答える 3

1

次のように言って@dl、後のクエリで使用できます。

SELECT COUNT(downloads) as dl
into @dl
FROM files
GROUP BY file_id
于 2013-03-06T09:56:32.403 に答える
0

質問はかなり曖昧です。

mysqldにクエリを送信しているものなら何でも変数に保存できます。mysqldのセッション変数に保存できます。あなたはそれをmysqlのテーブルに書くことができます。現在のクエリを、値を使用するクエリに結合するだけです。両方の(すべて?)クエリをプロシージャでラップできます。結果のキャッシュを有効にしている場合は、クエリを再度実行して、キャッシュから値をフェッチできます。

于 2013-03-06T09:57:58.147 に答える
0

複数の行を保存している場合は、一時テーブルを作成できます。

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

同じセッション内で、他のテーブルと同じように一時テーブルを使用できます。接続が閉じられると、テーブルは破棄されます。

于 2013-03-06T10:03:26.260 に答える