2

对不起,如果标题令人困惑。

假设我有一个 episode_id 为 0 到 20 的视频播放列表。

当前播放的剧集是 episode_id 4。

我想检索“更多视频”列表以提示用户继续观看,以及要观看的下一集,如播放列表。所以列表会说“下一个:第 5 集”,然后是第 6 到 20 集,但理想情况下还有第 0、1、2 和 3集。 所以我们会再次回到开头的剧集。

是否有一个我不知道的简单的 MySQL 函数可以处理这样的事情?

编辑:我应该补充一点,有时 episode_id 不是很好和有序的。给定节目的 episode_id 可以是 12、14、17、19、31 和 37,因为 episode_id 是表的主键。

4

1 回答 1

3

一种方法是利用布尔排序,并执行以下操作:

SELECT * FROM episodes
WHERE ....
ORDER BY episode_id > 4 DESC, episode_id ASC

这依赖于episode id > 4 DESC将真值放在假值之前,然后在这两组中排序episode_id ASC

于 2013-10-08T01:02:17.073 回答