php - 如何列出所有上线?

标签 php mysql hierarchical-data

我想选择“Apple”然后输出“John”和“Michelle”。 我尝试运行代码,但它不起作用。请帮忙。

select @start := title as 'title', id, parent
from mytable
join 
(select @start := 0) temp
where parent = @start and title = "Apple";

链接:http://sqlfiddle.com/#!9/91fd40/1/0

最佳答案

我自己找到了答案,以防万一有人需要Demo :

SELECT T2.id, T2.title, T2.parent
FROM (
    SELECT
        @r AS _id,
        (SELECT @r := parent FROM mytable WHERE id = _id) AS parent,
        @l := @l + 1 AS lvl
    FROM
        (SELECT @r := 6, @l := 0) vars,
        mytable h
    WHERE @r <> 0) T1
JOIN mytable T2
ON T1._id = T2.id 
where T2.title<>'sky'
ORDER BY T1.lvl DESC

关于php - 如何列出所有上线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59551642/

相关文章:

r - 如何为每一行返回一系列列中的第一个非 NULL 值?而第二个非空值?

javascript - 如何使用具有额外属性的html输入框?

mysql - mySQL 中一周开始的时间戳

php - 获取子类别和子子类别以及无限子子子类别

php - 从数据库获取经纬度点的距离

mysql - SQL 查询在数据库客户端中有效,但在 Laravel 应用程序中无效

php - 摆脱 MYSQL 中的循环父/子

php - 如何在 Windows 的 xampp/wampp 中安装 imagick

PHP MYSQL 最简单的用户搜索技术与排序结果

php - WC_Order->get_items() 返回空项目