我需要在一个变量中存储select语句结果(多行和列)以便以后使用,有没有办法只在mySql中执行它。我想在存储过程中使用它。
我知道select语句的单个结果可以很容易地存储在变量中,但是有没有存储多个行和列?
如果有的话。那是什么和它的确定。
如果没有,那么mySql中如何解决下面这样的场景?我已经编写了以下理想/期望的代码,假设存在dataTbale。
Declare dt DataTable;
set dt = select column_name,table_name from information_schema.columns
where table_schema='emp';
DECLARE i INT; DECLARE c INT; set i=0; set c=dt.Rows.Count;
WHILE i < c
@q = concat ('select ', dt.Rows[i][0],' from ',dt.Rows[i][1]);
prepare s1 from @q;
execute s1;deallocate prepare s1;
END WHILE;
每行和它的两个dt单元用于while。是否有任何二维阵列或其他设施?
正在尝试做什么?上面的代码while用于显示数据库所有表中所有列(逐个)的所有值
有什么问题?标题和第一个问题陈述。
答案 0 :(得分:1)
不要一次存储所有结果,而是使用光标:http://dev.mysql.com/doc/refman/5.0/en/cursors.html
然后在读取光标时循环。