`
paulfzm
  • 浏览: 872971 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mysql 获取当前类别及所有子类别id

阅读更多
CREATE  FUNCTION `getTreeCategory`(rootId INT) RETURNS VARCHAR(1000) CHARSET utf8
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);/*将以前类别与现在查询类别进行合并*/
        /*将每次查到的子id形成一个字符组,放到sTempChd里,如果sTempChd为null就停止循环*/
        SELECT GROUP_CONCAT(catid) INTO sTempChd FROM tblName WHERE FIND_IN_SET(parentid,sTempChd)>0;
    END WHILE;
    SET sTemp = SUBSTRING(sTemp,2,CHAR_LENGTH(sTemp));
    RETURN sTemp;        
    END$$

 

测试结果

select getTreeCategory(0);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics