首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我怎么找到我的播放列表中的第一首歌?(单链表)

我怎么找到我的播放列表中的第一首歌?(单链表)
EN

Stack Overflow用户
提问于 2014-08-27 01:31:38
回答 1查看 49关注 0票数 0

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

  • setID - 16位十六进制,它引用了我的播放列表表中的一行
  • songID - 16位十六进制,它引用“我的歌曲”表中的一行
  • nextID - 16位十六进制,包含下一项的songID

这对于将新歌曲添加到列表的末尾和重新排列歌曲很有效,但是是否有一种方法可以让我查询列表中第一个元素的id?也就是没有nextID链接的那个?

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

EN

回答 1

Stack Overflow用户

发布于 2014-08-27 01:34:43

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

相反,您应该有一个具有如下列的表:

  • setID
  • songNumber
  • songID

把它们放在一张桌子上。

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

代码语言:javascript
复制
select *
from playlist
where nextID is null;

然而,我认为这是最后一次,而不是第一次。

编辑:

您可以获得的第一个如下:

代码语言:javascript
复制
select *
from playlist pl
where not exists (select 1 from playlist pl2 where pl2.nextid = pl.id and pl2.setId = pl.setId);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25517595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档