从以前的mysql查询调用值

时间:2013-03-06 09:53:23

标签: mysql

假设您有以下MySQL语句,

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

您已经生成了第一个查询的结果。然后如何在其后的另一个选择查询中调用dl?因为我想在dl上执行另一项操作。除非必须,否则我不想在同一个查询中执行此操作。

3 个答案:

答案 0 :(得分:1)

您可以说以下内容并在以后的查询中使用@dl

SELECT COUNT(downloads) as dl
into @dl
FROM files
GROUP BY file_id

答案 1 :(得分:0)

问题相当含糊。

您可以将其存储在任何向mysqld发送查询的变量中。您可以将它存储在mysqld中的会话变量中。你可以把它写入mysql的表中。您可以将您的curernt查询加入到要使用该值的查询中。您可以在一个过程中包装两个(所有?)查询。如果您已启用结果缓存,那么您可以再次运行查询以从缓存中获取值。

答案 2 :(得分: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

在同一个会话中,您可以像使用任何其他会话一样使用临时表;当连接关闭时,表将被销毁。