0

我需要将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;

每个 Row 及其两个 dt 单元格在 while 中使用。有没有二维数组或其他的设施?

正在尝试做什么?while 中的上述代码旨在显示数据库所有表中所有列(一一)的所有值

什么是问题?标题和第一个问题陈述。

4

1 回答 1

1

不要一次存储所有结果,而是使用游标:http ://dev.mysql.com/doc/refman/5.0/en/cursors.html

然后在读取光标时循环。

于 2012-08-27T20:36:57.890 回答