比如!:set tmp='select * from test';
exec(tmp);//这是sql server中的用法!!在mysql中该怎么做??

解决方案 »

  1.   

    直接执行就可以了 
    唯一不同的就是先要用delimiter 把结束符换掉。
    delimter //
    create procedure getqq()
    beginselect * from qq;
    end 
    //
    delimter //
      

  2.   

    现在我的问题是在
    create procedure getqq(s varchar(20))
    begin
    declare str varchar(200);
    set str='select * from qq where id='+s;
    exec(str);//这里怎么换!!!
    end
      

  3.   

    delimiter //
     create procedure getqq(ss int) begin select * from qq where a=ss; end//delimiter ;
    call getqq(8);
    +---+------+------+------+------+
    | a | b    | new  | cc   | xx   |
    +---+------+------+------+------+
    | 8 | NULL |   12 | NULL | NULL |
    +---+------+------+------+------+
    1 row in set (0.04 sec)
      

  4.   

    delimiter //
     create procedure getqq(ss int) begin select ss from qq end//这样怎么处理!!列是变量!delimiter ;
    call getqq(8);
      

  5.   

    另外还有这样的可能!!
     create procedure getqq(ss int) begin select * from qq limit ss end
      

  6.   

    drop procedure get_page  ;
    delimiter //
    create procedure get_page(ppage int,psize int) 
    beginset @ppage=ppage;
    set @psize=psize;
    set @pbegin=(@ppage-1)*psize  ;
    set @str='select * from money order by paytime limit ?,?';
    prepare smt from @str;
    execute smt using @pbegin,@psize;
    end
    //
    delimiter ;
      

  7.   

    现在我的问题是在
    create procedure getqq(s varchar(20))
    begin
    declare str varchar(200);
    set str='select * from qq where id='+s;
    exec(str);//这里怎么换!!!
    end-----------------------
    delimiter //;
    create procedure getqq(s varchar(20))
    begin
    select * from qq where id='+s;
    end;
    delimiter ;//