想通过传递个id进去。自动生成 a_goods_0,a_goods_1这样的表名。然后进行select (*)查询
create procedure c1 (in id int)BEGIN
declare a  varchar(255);
set a = concat("ic_goods_",id);
select  * from a;
end;调用存储过程set @id = 1;
call c1(@id);查询不出结果。
Table 'caiji.a' doesn't exist

解决方案 »

  1.   

    这个是很明显,表a不存。
    直接这样用
    call c1(1);
    而且你也没输出啊
      

  2.   


    create procedure c1 (in id int,out wc varchar(255))BEGIN
    declare a  varchar(255);
    set a = concat("ic_goods_",id);
    select  * into wc from a ;
    end;call c1(2)
      

  3.   

    MYSQL中无法使用变量做表名,列名。可以通过形成
    set @sql = concat("select * from ic_goods_",id);
    然后用 
    PREPARE stmt2 t1 FROM @sql ;
    EXECUTE stmt2 ;
    DEALLOCATE PREPARE stmt2;来执行。