1

我有以下内容:

ID NAME PAREN_ID
1   a    null
2   b    null
3   c     2
4   d     3

我想列出 ID 4 项及其所有父项,所以我想得到:

4 d 3
3 c 2
2 b null

我尝试了一些东西:

SELECT * FROM categories c1
JOIN categories c2 ON c2.ID = c1.PARENT_ID;

但这不是好的结果,即使我尝试过滤到 ID 4,它也不会返回任何内容。它的MySQL!

4

1 回答 1

0

我不太确定如何使用 MySQL 来做到这一点。我认为您最好的选择是递归地获取所有内容。

function getCategories( $id ) {
    $ret = array();
    $cat = mysql_query( 'SELECT * FROM categories' );
    $curid = $id;
    do {
        $ret[] = $cat[ $curid ];
        $curid = $cat[ $curid ][ 'PARENT_ID' ];
    } while ( $curid );
    return $ret;
}

您应该更改它以使其使用 PDO。

唯一的问题是查询返回大量数据。

于 2012-08-15T13:01:07.883 回答