gpt4 book ai didi

mysql - 在单个 Ruby/MySQL 查询中加载整个链表

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:32 25 4
gpt4 key购买 nike

我将数据链表存储在如下记录中:

CREATE TABLE IF NOT EXISTS `data_nodes` (
`record_id` int(11) NOT NULL,
`prev_node` int(11) NOT NULL,
`data` varchar(200) NOT NULL,
PRIMARY KEY (`record_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

其中 prev_node 是列表中前一项的 record_id,如果我们位于列表中的第一项,则为 0。

典型的列表可能类似于:

record_id     prev_node     data
--------- --------- ----
1 0 first item
12 1 second item
27 12 third item

我正在使用 Ruby 的 mysql 模块,我想做的是:给定列表中最后一项的记录号,在单个查询中加载整个列表。 (例如,给定记录 id 27,返回包含“第一项”、“第二项”、“第三项”的结果集)

这可以做到吗?

谢谢。

最佳答案

任何固定高度N的树都可以,但是如果树高变成N+1,你就不能做这个操作。

换句话说,如果您知道有多少层父/子节点,您可以按照此处的说明构建查询(搜索Retrieving a Single Path):http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

您可以使用嵌套集模型和 RoR 插件 acts_as_nested_set 来获得您想要的结果。

如果您需要这篇文章的帮助,请告知。

关于mysql - 在单个 Ruby/MySQL 查询中加载整个链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2142803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com