CREATE TABLE  `producttype` (
  `typeid` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(36) NOT NULL,
  `parentid` int(11) DEFAULT NULL,
  PRIMARY KEY (`typeid`),
) 单表分类表,parentid为父级类别,parentid也可能是二级三级如何查出一级分类下的所有类别

解决方案 »

  1.   

    三级最多??
    SELECT *
      FROM producttype
     WHERE parentid = xxx
     UNION ALL
    SELECT self.*
      FROM producttype self,
           producttype parent
     WHERE self.parentid = parent.id
       AND parent.parentid = xxx
      

  2.   

    http://blog.csdn.net/acmain_chm/article/details/4142971
      

  3.   

     CREATE FUNCTION `getChildLst`(rootId INT)
        -> RETURNS varchar(1000)
        -> BEGIN
        ->   DECLARE sTemp VARCHAR(1000);
        ->   DECLARE sTempChd VARCHAR(1000);
        ->
        ->   SET sTemp = '$';
        ->   SET sTempChd =cast(rootId as CHAR);
        ->
        ->   WHILE sTempChd is not null DO
        ->     SET sTemp = concat(sTemp,',',sTempChd);
        ->     SELECT group_concat(id) INTO sTempChd FROM treeNodes where FIND_IN_SET(pid,sTempChd)>0;
        ->   END WHILE;
        ->   RETURN sTemp;
        -> END请问如何创建函数,我把代码复制到workbench里执行为何报错