좋아요, 그래서 홈 시어터 시스템에서 일하고 있고 TV 시리즈 목록을 표시하기 위해 첫 번째 시즌의 첫 번째 에피소드를 선택하고 그 에피소드에 대한 관련 정보를 표시했습니다. 그런 다음 다른 사람들에게 드릴 다운 할 수 있습니다.MYSQL MIN in WHERE 절
그런 식으로 모든 영화와 모든 TV 프로그램을 단일 테이블에 보관하여 재생 기능을 훨씬 쉽게 유지할 수 있습니다.
문제는 일부 시리즈의 경우 데이터베이스에 첫 번째 에피소드가 없기 때문에 문제가 발생하지 않기 때문에 첫 번째 에피소드 대신 최소 시즌/시리즈를 선택하고 싶습니다.
, 나는 그것이 하나의 시리즈를 선택으로 다음 SELECT 절에 MIN
을 넣을 수없고, 그것 때문에 그들이 그룹화하고있는 방법의 하나 개의 요소 말한다 때문에이 WHERE
절에 LEAST
을 넣을 수 없으며, 나는 LIMIT
을 사용할 수 없다. 왜냐하면 다시 한 번 시리즈를 선택하기 때문이다.
여러 개의 복잡한 하위 쿼리를 사용하지 않고이를 수행 할 수있는 방법이 있습니까? 여기
내가 지금 사용하고 쿼리의의CASE
절은 적절한 알파벳 순서에 대한 일련의 타이틀에서 A//는을 제거하는 것입니다 :
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
예상 결과와 함께 샘플 데이터를 제공 할 수 있습니까? – Verma
테이블 레이아웃은 두 번째 대답에 대한 응답으로 아래에 있습니다. 여기에 나와있는 600 문자는 샘플 데이터를 입력하기에 충분하지 않지만 본질적으로 시즌 및 에피소드를 제외한 모든 열에서 동일한 데이터를 가진 결과를 얻을 수 있습니다. 시리즈/시즌/에피소드를 결합하면 고유하지만, 지금 당장 제약 조건을 설정하지 않았습니다. 또한 해당 필드는 유형이! = 'tv'인 경우에만 null이 될 것으로 예상되지만 적용되지는 않습니다 (가능하지는 않습니다). 이러한 제약 조건은 모두 응용 프로그램에 의해 적용되므로 데이터가 충족됩니다 테이블 레이아웃 –
1. 시리즈의 각 시즌의 첫 번째 에피소드 또는 시리즈의 첫 번째 시즌의 첫 번째 에피소드를보고 싶습니까? – Verma