一、查询一个栏目所有父级栏目 SELECT T1.lvl, T2.* FROM ( SELECT @r AS _id, ( SELECT @r := `上级ID字段名` FROM `栏目表名` WHERE `栏目ID字段名` = _id ) AS parent_id, @l := @l + 1 AS lvl FROM ( SELECT @r := `要查询的栏目ID值`, @l := 0 ) vars, `栏目表名` h WHERE @r <> 0 ) T1 JOIN `栏目表名` T2 ON T1._id = T2.`栏目ID字段名` ORDER BY `栏目ID字段名`;二、查询一个栏目所有子级栏目 SELECT * FROM ( SELECT t1.*, CASE WHEN `栏目ID字段名` = @pids THEN 1 WHEN find_in_set( `上级ID字段名`, @pids ) > 0 THEN @pids := concat( @pids, ',', `栏目ID字段名`) ELSE 0 END ischild FROM ( SELECT * FROM `栏目表名` t ORDER BY `上级ID字段名`, `栏目ID字段名` ) t1, ( SELECT @pids := 要查询的栏目 ID值 ) t2 ) t3 WHERE ischild != 0上述代码中带中文的地方要根据实际数据库结构修改