可以使用递归查询来获取id为123下的所有子孙节点。具体实现如下:

WITH RECURSIVE sub_tree(id, parent_id, name, depth) AS ( SELECT id, parent_id, name, 0 FROM pla_doc_parcel WHERE id = 123 UNION ALL SELECT p.id, p.parent_id, p.name, st.depth + 1 FROM pla_doc_parcel p JOIN sub_tree st ON p.parent_id = st.id ) SELECT * FROM sub_tree;

上面的查询使用了CTE(公共表达式)和递归查询。首先以id=123的节点作为起始节点,查询其子节点并记录其深度为0。然后再以子节点为起始节点,查询其子节点并记录其深度为1。以此类推,直到查询出所有子孙节点。最后将所有查询出的节点返回。

注意:上面的查询可能会导致性能问题,特别是当树结构非常深时。可以考虑使用其他方法来优化查询性能。

mysql57有一张表pla_doc_parcel里面是一个树结构的数据通过parent_idid两个字段确定父子关系根节点的parent_id为0查询id为123下的的所有子孙节点

原文地址: https://www.cveoy.top/t/topic/pq4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录