MySQL - 如何查询树?

时间:2011-05-17 22:50:02

标签: mysql sql

说我有下表:

TABLE: category
 - category_id (PK)
 - parent_id (FK)
 - name

给定category_id的值,如何返回给定的category_id及其所有后代?

1 个答案:

答案 0 :(得分:3)

如果你想要级别,你可以在条件category_id = id OR parent_id = id上进行SELECT - 但是使用MySQL,你无法通过单个查询获得完整的树。

可以编写一个存储过程来检查所有中间结果并选择子子,但这真的不是很整洁。

相反,您可以重新设计表格。在MySQL开发人员站点上,有一个关于如何在表中存储分层数据的nice article,并提供了一种比仅使用parent_id更灵活的设计。