MySQL二叉樹的概念:
遍歷二叉樹中的節點時,首先訪問根節點,接著訪問根節點的左子節點,再接著訪問左子節點的左子節點,然后是左子節點的右子節點,接下來訪問根節點的右子節點,以此類推,直到遍歷完所有節點。
/* MySQL二叉樹的實現 */
DELIMITER //
CREATE FUNCTION binary_tree(p_id INT) RETURNS VARCHAR(2048)
BEGIN
DECLARE result VARCHAR(2048);
DECLARE left_t VARCHAR(2048);
DECLARE right_t VARCHAR(2048);
SELECT GROUP_CONCAT(id) INTO left_t
FROM my_table
WHERE parent_id = p_id AND is_left = 1;
SELECT GROUP_CONCAT(id) INTO right_t
FROM my_table
WHERE parent_id = p_id AND is_left = 0;
/* 檢查左子節點是否存在 */
IF left_t IS NOT NULL THEN
SET result = CONCAT(binary_tree(left_t),',',result);
END IF;
/* 檢查右子節點是否存在 */
IF right_t IS NOT NULL THEN
SET result = CONCAT(result,',',binary_tree(right_t));
END IF;
/* 在末尾添加當前節點 */
SET result = CONCAT(result,',',p_id);
RETURN result;
END //
DELIMITER ;
/* 使用方法 */
SELECT binary_tree(1);
這段代碼使用遞歸的方法構建MySQL二叉樹。首先檢查左子節點是否存在,如果存在則遞歸地調用函數,然后檢查右子節點是否存在,同樣遞歸調用函數,最后在末尾添加當前節點并返回二叉樹。
上一篇nuxtjs vue部署
下一篇視頻展示css