假设您有以下 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
在同一个会话中,您可以像使用其他任何表一样使用临时表;当连接关闭时,表被销毁。