色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 獲取所有子節(jié)點(diǎn)的函數(shù)

張吉惟2年前7瀏覽0評論

在MySQL中獲取所有子節(jié)點(diǎn),是一個非常常見的操作。下面我們針對這個問題,給出一種比較簡單易用的函數(shù)實現(xiàn)方法。

CREATE FUNCTION get_all_sub_nodes(
parent_id INT(11) --傳入父節(jié)點(diǎn)的id
) RETURNS VARCHAR(1000)
BEGIN
DECLARE node_list VARCHAR(1000);
SET node_list = '';
SELECT GROUP_CONCAT(a.id) INTO node_list
FROM tree_table a, tree_table b
WHERE a.lft BETWEEN b.lft AND b.rgt AND b.id = parent_id;
RETURN node_list;
END

以上代碼中,我們先在函數(shù)里面聲明一個變量node_list,用來保存我們要查找的所有子節(jié)點(diǎn)的id。接下來,我們使用GROUP_CONCAT函數(shù)來將所有符合條件的id值轉(zhuǎn)換為一個字符串并賦值給node_list。

其中,我們定義的這個函數(shù)的參數(shù)parent_id即為傳入的父節(jié)點(diǎn)的id,這個參數(shù)會通過WHERE子句中的b.id = parent_id進(jìn)行篩選,從而保證我們只查詢出當(dāng)前父節(jié)點(diǎn)的所有子節(jié)點(diǎn)。

最后,我們將獲取到的所有子節(jié)點(diǎn)id組成的字符串返回給調(diào)用它的程序。