如何实现“mysql 查询父级最高点”

整体流程

  1. 查询指定节点的所有父级节点
  2. 找出父级节点中的最高点

步骤及代码示例

步骤1:查询指定节点的所有父级节点

# 引用形式的描述信息

```sql
-- 创建存储过程,用于递归查询父节点
DELIMITER //
CREATE PROCEDURE `getAncestors`(IN `child_id` INT)
BEGIN
    CREATE TEMPORARY TABLE IF NOT EXISTS ancestors_table (id INT);
    
    INSERT INTO ancestors_table SELECT parent_id FROM your_table WHERE id = child_id;
    
    WHILE ROW_COUNT() > 0 DO
        INSERT INTO ancestors_table SELECT parent_id FROM your_table WHERE id IN (SELECT id FROM ancestors_table);
    END WHILE;
    
    SELECT DISTINCT id FROM ancestors_table;
    
    DROP TEMPORARY TABLE IF EXISTS ancestors_table;
END //
DELIMITER ;

步骤2:找出父级节点中的最高点

# 引用形式的描述信息

```sql
-- 查询父级节点中的最高点
SELECT MAX(id) FROM getAncestors(child_id);

关系图

erDiagram
    YOUR_TABLE {
    int id
    int parent_id
    varchar other_columns
    }

总结

在实现“mysql 查询父级最高点”的过程中,首先需要创建一个存储过程,用于递归查询指定节点的所有父级节点。然后,通过查询父级节点中的最高点,即最大id值,来找出父级节点中的最高点。以上步骤和代码示例可以帮助你实现该功能,希望对你有所帮助。