很抱歉,如果标题令人困惑。
假设我有一个episode_id为0到20的视频播放列表。
目前播放的剧集是episode_id 4.
我想检索一个“更多视频”列表以提示用户继续观看,以及下一集即将观看的节目,如播放列表。所以这个列表会说“Up Next:Episode 5”,然后是剧集6 - 20,,但理想情况下也会是剧集0,1,2和3。所以我们会再次回到开头的剧集
是否有一个简单的MySQL功能,我不知道可以处理这样的事情?
编辑:我应该补充一点,有时episode_id不是很好而有序。给定节目的episode_id可以是12,14,17,19,31和37,因为episode_id是该表的主键。
答案 0 :(得分:3)
一种方法是利用布尔排序,并执行以下操作:
SELECT * FROM episodes
WHERE ....
ORDER BY episode_id > 4 DESC, episode_id ASC
这依赖于episode id > 4 DESC
在虚假值之前放置真值,然后在这两个组中按episode_id ASC
排序。