2014-05-20 5 views
3

mysql에 새로 워서 질문을 올바르게 물어볼 지 확신하지 못합니다. if 문에 여러 매개 변수를 추가하려고합니다. 두 팀 간의 경기가 리그 경기인지 확인하려고합니다. 수표의if 문에 mysql 여러 조건이 있습니다.

SELECT visitor AS school, home AS temp, vl.leagueid AS vleague, hl.leagueid AS hleague, 
if(vl.leagueid = hl.leagueid, 1, 0) AS leaguematch 
FROM schedule 
LEFT JOIN schools AS vl ON vl.id = visitor 
LEFT JOIN schools AS hl ON hl.id = home 
WHERE gamedate between '2013-01-01' AND '2013-12-31' 

leagueid 년대 내가 추가 할 동일한 경우 ((vl.leagueid = 26 AND hl.leagueid = 27) 또는 (vl.leagueid = 27 AND hl.leagueid = 26)). 시도한 조합()은 작동하지 않는 것으로 보이므로이 잘못된 것에 대한 느낌이 들게됩니다.

감사합니다, 마이크 chofer하는

덕분에, 여기 당신이 조건을 동일하게 넣어 vl.leagueid 및 hl.leagueid 필요하면 내 작업 쿼리

SELECT visitor AS school, home AS temp, vl.leagueid AS vleague, hl.leagueid AS hleague, 
CASE 
    WHEN vl.leagueid = hl.leagueid THEN '1' 
    WHEN ((vl.leagueid = 26 AND hl.leagueid = 27) OR (vl.leagueid = 27 AND hl.leagueid = 26)) THEN '1' 
    ELSE 0 
END AS leaguematch 

FROM u96nk_rvball_schedule 
LEFT JOIN u96nk_rvball_schools AS vl ON vl.id = visitor 
LEFT JOIN u96nk_rvball_schools AS hl ON hl.id = home 
WHERE gamedate between '2013-01-01' AND '2013-12-31' 

답변

3

이고,이

같은

WHERE gamedate between '2013-01-01' AND '2013-12-31' AND vl.leagueid = hl.leagueid

편집 당신은 C는 경우 특정 값으로 leaguematch을 설정하려면 그들은 CASE 최선의 선택

SELECT visitor AS school, 
     home AS temp, 
     vl.leagueid AS vleague, 
     hl.leagueid AS hleague, 
     CASE 
      WHEN school = 50 AND temp = 2 THEN '1' 
      WHEN school = 51 AND temp = 3 THEN '2' 
      ELSE 0 
     END AS leaguematch 
FROM ...... 

에게 될 수없는 경우 onditions 0 충족 I

, 아마 충분히 설명하지 않았다
+0

죄송합니다 - 나쁜 습관을 - 나는 조건이있는 경우 1 leaguematch을 설정하려면 만났다. 그렇지 않은 경우 0. 그래서 나는 이렇게 보일 것입니다.school = 50 temp = 2 vleague = 25 hleague = 25 leaguematch = 1 –

+0

편집을 보면, CASE 문이 좋을 것이라고 생각합니다. – chofer