当前位置: 首页 > 面试题库 >

使用MySQL变量选择分层数据

关志勇
2023-03-14
问题内容

我有一个表,用于存储目录信息(例如在文件系统中)。每个目录(命名节点)都有一个nodeid和一个parentid。我想尽可能有效地检索完整路径。为此,我试图使以下查询正常工作,但是这些查询仅返回预期的第一行(实际上是最里面的目录)。任何人都可以帮助获取完整的结果集,以便也选择给定目录/节点的所有层次结构父级。

我目前正在尝试的查询:

SET @var:= 8;
SELECT * , @var:=parentid FROM `app_nodes` WHERE nodeid IN ( @var )

选择:

SET @var:= 8;
SELECT * , @var:=parentid FROM `app_nodes` WHERE nodeid=@var

选择:

SET @var:= 8;
SELECT * FROM `app_nodes` WHERE nodeid=@var AND (@var:=parentid)
#the parentid of the first parent is '0', so I expect it to end there.

样本数据:

nodeid      parentid
1           0
2           0
3           0
4           0
5           3
6           5
7           0
8           6
9           0
10          0
11          5
12          6
13          11
14          11

所需的输出:

nodeid      parentid
3           0
5           3
6           5
8           6

谁能帮忙吗?


问题答案:

您已经错过了订购数据的需要。请尝试以下操作:SQL Fiddle

select t.nodeid, @pv := t.parentid parentid
from (select * from table1 order by nodeid desc) t
join (select @pv := 8) tmp
where t.nodeid = @pv

输出:

| NODEID | PARENTID |
|--------|----------|
|      8 |        6 |
|      6 |        5 |
|      5 |        3 |
|      3 |        0 |


 类似资料:
  • 本文向大家介绍Jquery选择器中使用变量实现动态选择例子,包括了Jquery选择器中使用变量实现动态选择例子的使用技巧和注意事项,需要的朋友参考一下 例子一: 例子二: 例子三、jQuery中选择器参数使用变量应该注意的问题 这是原来的代码 实现的是关键词替换,不过到第三行时候不执行了,调试啊,替换啊,都不行。 从早上到刚才一直在各种群里面发问,终于 …… 俺们大本营 的Lomu大神一阵见血:

  • cesium每更新一个版本,就会导致默认的三维球不可见,原因是bingkey发生了变化,如果我们想设置三维球加载的初始图层,可以修改viewer的imageryProvider属性,但是这样做会导致一个问题:baseLayerPicker控件的按钮图标会显示为空白 今天我们来解决这个问题。 拿到问题不要直接开怼,想一想,应该怎么做? 首先我们知道这个控件就是一个div,那毫无疑问,使用js强制修改

  • 我编写了一个python selenium脚本,它从下拉列表中选择一个状态值。下拉元素的HTML复制如下: 问题:自动化脚本使用硬编码的xpath语句定位相同的状态值(“CA”)(请参见下面的脚本代码段)。相反,我想使用一个名为“state”的存储变量来选择状态值。 附加说明:我尝试使用其他方法来定位状态值(见下文),但到目前为止,我只成功地使用了上面的硬编码xpath。 driver.findE

  • 问题内容: 这是我的mysql查询 我想沿着边名选择一个增量计数器。所以预期的输出将是 问题答案: 这部分: 使得可以引入变量而无需单独的查询。因此,第一个查询也可以分为以下两个查询: 例如在存储过程中使用时。

  • 问题内容: 我有一个关于MYSQL中的选择查询的问题 我有两个不同的表,我想获得一定的结果 我使用了COUNT方法,该方法只给我结果(> = 1) 但实际上,我想使用包含零的所有计数怎么做? 我的查询是: 第一张桌子:Content_hits 第二张表:Content_tag 结果但不完整 例如:tag_id = 1的Subsrciber6应该具有count(*)= 0 问题答案: 现在,您已经进

  • 问题内容: 我在脚本中苦苦挣扎,因为切换到mysqli后将不再起作用。我检查了PHP手册,但看不到我在做什么错,肯定是初学者的错误。 这是我的代码: 我想知道是否是因为我正在使用另一个脚本进行连接,但是它在抱怨我的mysqli_query,所以我收到此错误: [2014年1月1日星期二21:14:54] [错误] [客户端:: 1] PHP警告:mysqli_error()恰好期望1个参数,第7行