首页 » SEO优化 » phpmysql树查询技巧_mysql运用函数查询树形数据

phpmysql树查询技巧_mysql运用函数查询树形数据

访客 2024-12-19 0

扫一扫用手机浏览

文章目录 [+]

转载自:多级树形构造和sql查询实现

废话不多说,先上总的数据

phpmysql树查询技巧_mysql运用函数查询树形数据

现在我要查出所有河南省极其下属的数据,结果如下

phpmysql树查询技巧_mysql运用函数查询树形数据
(图片来自网络侵删)

效果不错吧,下面是该函数源码

delimiter /

DROP FUNCTION IF EXISTS `mydb`.`getChild`/

CREATE FUNCTION `getChild`(rootId varchar(36))

RETURNS VARCHAR(1000)

BEGIN

DECLARE ptemp VARCHAR(1000);

DECLARE ctemp VARCHAR(1000);

SET ptemp = '#';

SET ctemp = rootId;

WHILE ctemp IS NOT NULL DO

SET ptemp = concat(ptemp, ',', ctemp);

SELECT group_concat(id)

INTO ctemp

FROM t_tree_table

WHERE FIND_IN_SET(pid, ctemp) > 0;

END WHILE;

RETURN ptemp;

END;

123456789101112131415161718

下面是查询语句,只要在getChild的参数中输入须要查询的父级id即可,

例如示例数据中的 河南 的 id 为 2.

select from t_tree_table where find_in_set(id,getChild(2));

1

若要拼接成树控件用的多层级的JSON数据,可以参考我另一篇博客

java+mysql递归拼接树形JSON列表

感慨:做java web开拓也有两年之久了,逐渐没有刚进入事情岗位时那种求知欲了,逐渐习惯用既有的知识去处理问题,但是我用的方法、算法,真的是最高效的吗?难道就没有更好的办理办法?不,并不是,就像这个看似大略的树形构造,一贯以来都是通过java中的循环去查询取值,一贯也以为非常麻烦而且没有效率,但是直到本日才学到这么简便高效的方法,真的是活到老、学到老,在打算机领域,我们永久都是什么都不懂的小屁孩吧。

标签:

相关文章