作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,我正在研究家庭影院系统,为了显示电视剧列表,我一直在选择第一季的第一集并显示该集的相关信息,然后您可以向下钻取给他人。
这样我就可以将所有电影和所有电视节目保存在一个表中,这使得播放功能更加容易。
问题是,有些系列我在数据库中没有第一集,但无论如何我都希望它们出现,所以我想选择最少的季节/系列而不是第一集。
我不能将 MIN
放在 select 子句中,因为它只会选择一个系列,而且我不能将 LEAST
放在 WHERE
子句,因为它说它只是一个元素,因为它们的分组方式,我不能使用 LIMIT
因为它只会选择一个系列。
有没有办法不用多个复杂的子查询就可以做到这一点?
这是我目前正在使用的查询,CASE
子句是为了按正确的字母顺序从系列标题中删除 A/An/The:
SELECT *, CASE when substring(series,1,4) = 'The ' then substring(series, 5)
when substring(series,1,3) = 'An ' then substring(series, 4)
when substring(series,1,2) = 'A ' then substring(series, 3)
else series END AS sorttitle
FROM Theater.Videos WHERE type='TV' and season=1 and episode=1 ORDER BY sorttitle ASC
这基本上就是我想要的:
SELECT *, CASE when substring(series,1,4) = 'The ' then substring(series, 5)
when substring(series,1,3) = 'An ' then substring(series, 4)
when substring(series,1,2) = 'A ' then substring(series, 3)
else series END AS sorttitle
FROM Theater.Videos WHERE type='TV' and season=MIN(season) and episode=MIN(episode) ORDER BY sorttitle ASC
最佳答案
尝试这些查询(经过适当修改后)...
要获取所有系列的列表以及第一(最小)季的第一集,请使用此...
select distinct v1.*
from videos v1,
(select series, min(season) as min_season from videos group by series) as v2,
(select series, season, min(episode) as min_episode from videos group by series, season) as v3
where v1.series = v2.series
and v1.season = v2.min_season
and v2.series = v3.series
and v2.min_season = v3.season
and v1.episode = v3.min_episode
要获取所有系列的列表以及每个季节的第一集,请使用此...
select distinct v1.*
from videos v1,
(select series, season, min(episode) as min_episode from videos group by series, season) as v3
where v1.series = v3.series
and v1.season = v3.season
and v1.episode = v3.min_episode
关于WHERE 子句中的 MYSQL MIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17938384/
我是一名优秀的程序员,十分优秀!