在MySQL中,查詢下屬子級是非常常見的操作,可以有不同的方法實現。下面展示其中兩種方法。
SELECT * FROM table_name WHERE parent_id = ?;
以上方法是通過在表中添加一個父級id字段來實現的。在這種方法中,您只需要提供您要查詢的父級id,該語句將返回與該父級關聯的所有子級。這種方法適用于相對較小的數據集。
WITH RECURSIVE subordinates AS (
SELECT * FROM table_name WHERE id = ? -- 您要查詢的id
UNION ALL
SELECT t.* FROM table_name AS t JOIN subordinates AS s ON t.parent_id = s.id
)
SELECT * FROM table_name WHERE id IN (SELECT id FROM subordinates);
以上方法使用通用表表達式來實現,可用于較大的數據集。該查詢將與您提供的id相關的所有下層子級遞歸地返回。
無論您選擇哪種方法,都應該考慮為查詢的數據添加索引來提高性能。
上一篇mysql如何導入表