在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

mysql树状查询的示例分析

102次阅读
没有评论

共计 2192 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章主要为大家展示了“mysql 树状查询的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“mysql 树状查询的示例分析”这篇文章吧。

– 创建表
drop table  if exists t_hierarchy;
CREATE TABLE t_hierarchy (
        id int(10) unsigned NOT NULL AUTO_INCREMENT,
        parent int(10) unsigned NOT NULL,
        PRIMARY KEY (id),
        KEY ix_hierarchy_parent (parent, id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

– 创建存储过程插入数据
DROP PROCEDURE if exists prc_fill_hierarchy;
DELIMITER $$
CREATE PROCEDURE prc_fill_hierarchy (level INT, fill INT)
BEGIN
        DECLARE _level INT;
        DECLARE _fill INT;
        INSERT
        INTO    t_hierarchy (id, parent)
        VALUES  (1, 0);
        SET _fill = 0;
        WHILE _fill fill DO
                INSERT
                INTO    t_hierarchy (parent)
                VALUES  (1);
                SET _fill = _fill + 1;
        END WHILE;
        SET _fill = 1;
        SET _level = 0;
        WHILE _level level DO
                INSERT
                INTO    t_hierarchy (parent)
                SELECT  hn.id
                FROM    t_hierarchy ho, t_hierarchy hn
                WHERE   ho.parent = 1
                        AND hn.id _fill;
                SET _level = _level + 1;
                SET _fill = _fill + POWER(fill, _level);
        END WHILE;
END
$$
DELIMITER ;

– 插入数据
START TRANSACTION;
CALL prc_fill_hierarchy(3, 2);
COMMIT;

– 创建生成树的函数
DELIMITER $$
CREATE FUNCTION hierarchy_connect_by_parent_eq_prior_id(value INT) RETURNS INT
NOT DETERMINISTIC
READS SQL DATA
BEGIN
        DECLARE _id INT;
        DECLARE _parent INT;
        DECLARE _next INT;
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET @id = NULL;

        SET _parent = @id;
        SET _id = -1;

        IF @id IS NULL THEN
                RETURN NULL;
        END IF;

        LOOP
                SELECT  MIN(id)
                INTO    @id
                FROM    t_hierarchy
                WHERE   parent = _parent
                        AND id _id;
                IF @id IS NOT NULL OR _parent = @start_with THEN
                        SET @level = @level + 1;
                        RETURN @id;
                END IF;
                SET @level := @level – 1;
                SELECT  id, parent
                INTO    _id, _parent
                FROM    t_hierarchy
                WHERE   id = _parent;
        END LOOP;      
END
$$
DELIMITER ;

– 生成 tree 的查询
SELECT  CONCAT(REPEAT( — , level – 1), CAST(hi.id AS CHAR)) AS treeitem, parent, level
FROM    (
        SELECT  hierarchy_connect_by_parent_eq_prior_id(id) AS id, @level AS level
        FROM    (
                SELECT  @start_with := 0,
                        @id := @start_with,
                        @level := 0
                ) vars, t_hierarchy
        WHERE   @id IS NOT NULL
        ) ho
JOIN    t_hierarchy hi
ON      hi.id = ho.id

以上是“mysql 树状查询的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计2192字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 精品久久久久久亚洲 | 一本久久a久久精品vr综合 | 真人做爰试看120秒 真实单亲乱l仑对白视频 | 成人免费无码大片a毛片 | 欧美成人国产精品高潮 | 99九九精品国产高清自在线 | 99热这里只有精品69 | 99色在线视频 | 久久精品这里是免费国产 | 国产精品污www一区二区三区 | 欧美va亚洲va在线观看 | 国产 一二三四五六 | 欧美日韩一道本 | 天堂69亚洲精品中文字幕 | 精品在线观看视频 | 四小虎免费永久观看 | 久久精品一区二区三区资源网 | 美女动作一级毛片 | 中文天堂最新版www官网在线 | 亚洲精品在线影院 | 又大又粗又爽a级毛片免费看 | 国模伊人 | 91精品国产免费久久久久久 | 久久久久久成人毛片免费看 | 日本高清视频在线播放 | 欧美日韩国产一区二区 | 亚洲精品鲁一鲁一区二区三区 | 久久久久亚洲精品成人网小说 | 亚洲国产一区二区三区a毛片 | 精品一级毛片 | 麻豆精品a在线观看 | 999久久久国产精品 999久久久精品国产消防器材 | 热99精品只有里视频最新 | 91精品国| 国模思思 | 亚洲国产一区二区三区精品 | 久久丁香五月天综合网 | 国产日韩欧美精品一区 | 狠狠色噜噜狠狠狠狠色综合久 | 精品亚洲欧美无人区乱码 | 久久久久四虎国产精品 |