为什么这里的upid 有错误呢,这个upid 是表里的列,而mysql报告错误Undeclared variable: upid
这到底为什么啊,谢谢了
DELIMITER $$DROP FUNCTION IF EXISTS `supesitetw`.`getChildName` $$
CREATE FUNCTION `supesitetw`.`getChildName` (rootId INT) RETURNS varchar(1000)
BEGIN
          DECLARE sTemp VARCHAR(1000);
          DECLARE sTempChd VARCHAR(1000);
          DECLARE sTempcatid VARCHAR(1000);
          DECLARE ddd VARCHAR(1000);
          SET sTemp = '\'$\'';
          SET sTempChd =cast(rootId as CHAR);
          WHILE sTempChd is not null DO
          SET sTemp = concat(sTemp,',',sTempChd);
          SELECT group_concat(name) INTO sTempChd,upid into ddd FROM supe_productcategories
          where FIND_IN_SET(catid,sTempChd)>0;          END WHILE;
          RETURN sTemp;
END $$DELIMITER ;

解决方案 »

  1.   

    改成如下格式,MySQL的 select into 和 oracle 不一样。SELECT group_concat(name),upid INTO sTempChd, ddd FROM supe_productcategories
      

  2.   

    mysql> DELIMITER $$
    mysql>
    mysql> DROP FUNCTION IF EXISTS `supesitetw`.`getChildName` $$
    Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> CREATE FUNCTION `getChildName` (rootId INT) RETURNS varchar(1000)
        -> BEGIN
        ->           DECLARE sTemp VARCHAR(1000);
        ->           DECLARE sTempChd VARCHAR(1000);
        ->           DECLARE sTempcatid VARCHAR(1000);
        ->           DECLARE ddd VARCHAR(1000);
        ->           SET sTemp = '\'$\'';
        ->           SET sTempChd =cast(rootId as CHAR);
        ->           WHILE sTempChd is not null DO
        ->           SET sTemp = concat(sTemp,',',sTempChd);
        ->           SELECT group_concat(name),upid INTO sTempChd, ddd FROM supe_productcategories
        ->           where FIND_IN_SET(catid,sTempChd)>0;
        ->
        ->           END WHILE;
        ->           RETURN sTemp;
        -> END $$
    Query OK, 0 rows affected (0.00 sec)mysql>
    mysql> DELIMITER ;
    mysql>
      

  3.   

    建议你参考一下 http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/02/4142971.aspx
      

  4.   

      SELECT group_concat(name),upid INTO sTempChd,ddd FROM supe_productcategories