SELECT * FROM categories WHERE parent_id = 1;
上述代码将检索所有属于类别ID 1的类别的子节点。它使用parent_id列来确定哪些行是子节点。
SELECT t1.name FROM categories t1 JOIN categories t2 ON t1.parent_id = t2.id WHERE t2.name = 'Books';
上述代码将检索所有属于“Books”类别的子节点的名称。它使用了一个自连接,其中t1是“子类别”,t2是“父类别”。它使用父类别的名称来确定子类别的行。
SELECT * FROM categories WHERE path LIKE '/1/%';
上述代码将检索所有属于类别ID 1的类别的子节点。它使用path列来确定哪些行是子节点。这种方法比第一种方法更具灵活性,因为它可以检索嵌套深度任意的子节点。
如果您需要查询所有子节点,而不仅仅是直接子节点,您可以使用以下代码:
SELECT * FROM categories WHERE path LIKE '/1/%' OR path = '/1';
上述代码将检索类别ID为1的所有子节点,并包括自己。这种方法比第三种方法更具灵活性,因为它可以检索任意深度的子节点。