我想用表名做参数,然后再填写该表,但是遇到问题就是insert与concat结合使用时候,好像‘’(单引号)不怎么会使用,有经验的帮忙解决下。
CREATE PROCEDURE `Joingroup`(IN `gName` varchar(20),IN `uID` int,IN `uPosition` int)
BEGIN
 set @sqltext:=CONCAT('insert into ',gName,'(userid,position)VALUES('@uID','@uPosition')'); 
 prepare sqlstr from @sqltext;
 execute sqlstr;
END;另外,我不是很明白PREPARE的作用,有没有通俗点的解释呢~ 谢谢各位~ 

解决方案 »

  1.   

    http://www.bhcode.net/article/20100108/6732.html
      

  2.   

    谢谢你回答 但是我就是想知道的是concat中如果有这样的参数的时候单引号怎么用~ 
      

  3.   

    CREATE PROCEDURE `Joingroup`(IN `gName` varchar(20),IN `uID` int,IN `uPosition` int)
    BEGIN
     set @sqltext:=CONCAT('insert into ',gName,'(userid,position)VALUES(',uIDk',',uPosition,')');  
     prepare sqlstr from @sqltext;
     execute sqlstr;
    END;
      

  4.   

    CREATE PROCEDURE `Joingroup`(IN `gName` varchar(20),IN `uID` int,IN `uPosition` int)
    BEGIN
     set @sqltext:=CONCAT('insert into ',gName,'(userid,position)VALUES(',uID,',',uPosition,')');   
     prepare sqlstr from @sqltext;
     execute sqlstr;
    END;
    这样就对了~ 谢谢了~~