我正在使用只读权限查询一个大型的mysql数据库,并且我想将一些慢查询结果设置为变量'foo',以便我可以在其他查询中再次使用它们。
基本上,我想要一个针对繁琐子查询的变量,以便我可以重复使用它而不必每次使用它时都运行它的成本。
当我输入:
set @foo := (select *
from table1 join table2
where bar = 0
group by id);
我收到的错误信息是:ERROR 1241 (21000): Operand should contain 1 column(s),如果我只限制为1列,会出现ERROR 1242 (21000): Subquery returns more than 1 row。
有没有一种方法可以将数组或表格存储在变量中?我没有权限创建临时表。
@foo
只能存储一个值,所以在你的SELECT
语句中,你一定要知道它会返回单个值。 - John Woo:D
。 - John Woo