mysql
  • max
  • 2011-09-16 2 views 0 likes 
    0

    내 코드이 카운트의 MAX 값을 찾는

    $query = "SELECT teamID, season, 
        MAX(season) AS current_season, 
        COUNT(DISTINCT matchID AND season=current_season) AS season_games_played, 
        FROM finances 
        WHERE teamID = '$_SESSION[teamID]'"; 
    

    그러나 이것은 나에게 오류를 :(제공

    내가 뭘하려고 오전 팀이 연주 것을 게임의 양을 얻을 수있다 그럼, current_season은 열 시즌의 최대 값이 될 것입니다.

    다음 코드는 지난 시즌에 팀이 지난 시즌 (MAX (시즌) -1)에 얼마나 많은 게임을했는지를 확인하는 것입니다. 쓴다?

    +1

    위를 기록하고있는 가장 최근 시즌 쉼표 후 season_games_played을 제거하고 그것을 시도 할 것이다. 어떤 오류가 발생하고 있습니까? –

    답변

    1

    이 일의 가장 간단한 방법은 아마 당신이 이미 이미 알고에 있음을 전달하는 나는이 SELECT 목록에서 teamID을 제거한

    SELECT 
        season, 
         COUNT(DISTINCT matchID) AS season_games_played 
        FROM finances 
        WHERE teamID = '$_SESSION[teamID]' /*<-- Probable SQL injection risk!*/ 
        GROUP BY season 
        ORDER BY season DESC 
        LIMIT 2; 
    

    될 것이다.

    '$_SESSION[teamID]'은 (는) PHP입니다. 해당 언어의 SQL 삽입을 피하는 방법을 읽어보십시오.

    +1

    +1 초 20 초 빠르게 :) – Bohemian

    +0

    답장을 보내 주셔서 감사합니다. SQL 인젝션에 대해 읽었을 때 거기에서 할 수있는 기회가 없습니다. 그것은 컴퓨터 생성 번호입니다. –

    1
    SELECT 
        teamID, 
        season, 
        COUNT(DISTINCT matchID) AS season_games_played, 
    FROM finances 
    WHERE teamID = ? 
    GROUP BY 1, 2 
    ORDER BY 2 DESC; 
    

    첫 번째 행은 가장 최근 시즌있을 것입니다, 2 행 등

    관련 문제