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 回答