Assign query results to MySQL variable
mysql, mysql-error-1193, sql, variables
Solution
it should be `@` when you are doing in `MySQL`.
set @foo := (select *
from table1 join table2
where bar = 0
group by id);
Problem
I'm querying a big mysql database with only read privileges, and I'd like to set some slow query results to a variable, 'foo', so I can use them again in other queries. Basically, I want to have a variable for a cumbersome subquery, so I can reuse it without having the cost of running it every time I want to use it. when I enter: ``` set @foo := (select * from table1 join table2 where bar = 0 group by id); ``` I get: ERROR 1241 (21000): Operand should contain 1 column(s) and if I restrict to 1 column, ERROR 1242 (21000): Subquery returns more than 1 row Is there a way to store an array or a table in a variable? I don't have privileges to create temporary tables.