gpt4 book ai didi

mysql - 如何找到播放列表中的第一首歌曲? (单链表)

转载 作者:行者123 更新时间:2023-11-29 23:53:01 28 4
gpt4 key购买 nike

我有一个存储播放列表的表。它的定义非常简单,只有三列:

  • setID - 引用播放列表中的一行的 16 位十六进制
  • songID - 16 位十六进制数,引用我的歌曲表中的一行
  • nextID - 16 位十六进制数字,包含下一个条目的歌曲 ID

这对于将新歌曲添加到列表末尾以及一般情况下重新排列歌曲非常有效,但是有没有办法让我查询此列表以获取列表中第一个元素的 id?又名没有 nextID 链接到的那个?

目前我正在考虑将第一个歌曲ID存储在播放列表表中,但如果可能的话,我想避免像这样混淆它们。

最佳答案

对于 SQL 数据库来说,这是一个糟糕的数据结构。关系模型不能很好地处理显式链表。

相反,您应该有一个包含以下列的表格:

  • 设置ID
  • 歌曲编号
  • 歌曲ID

并将它们存储在一个表中。

不过,你的问题的答案是:

select *
from playlist
where nextID is null;

但是,我将其称为最后一个,而不是第一个。

编辑:

您可以获得第一个:

select *
from playlist pl
where not exists (select 1 from playlist pl2 where pl2.nextid = pl.id and pl2.setId = pl.setId);

关于mysql - 如何找到播放列表中的第一首歌曲? (单链表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25517595/

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