假设您有以下MySQL语句,
SELECT COUNT(downloads) as dl<br>
FROM files<br>
GROUP BY file_id
您已经生成了第一个查询的结果。然后如何在其后的另一个选择查询中调用dl
?因为我想在dl
上执行另一项操作。除非必须,否则我不想在同一个查询中执行此操作。
答案 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
在同一个会话中,您可以像使用任何其他会话一样使用临时表;当连接关闭时,表将被销毁。