2010-12-15 5 views
0

내 게임 사용자의 점수를 저장하는 테이블이 있습니다. 가능하면 할 수있는 일은 mySQL을 사용하여 순위를 찾는 것입니다. 플레이어의 수가 기하 급수적으로 증가하면 전체 데이터베이스를 구문 분석하는 PHP 루프 시간이 급격히 늘어날 것입니다). 그때 하위 쿼리로를 사용하여 해당 내에서 단일 항목을 찾을 수 있습니다 할 수 있도록 필요한 -순위에 대한 mySQL 결과 집합에서 rownum을 찾습니다.

은 지금까지 나는 순위가 적용 결과 집합을 반환하는이 문장

select @rownum:[email protected]+1 'rank', s.* from top100 s, (select @rownum:=0) r order by score desc 

를 얻을 수 있었다 이전 인서트에서 플레이어가 마지막으로 insert_id를 찾는다.

도움을 주시면 감사하겠습니다. 지연 죄송합니다

답변

1
SELECT t.*, 
     (SELECT COUNT(*) 
      FROM top100 t2 
     WHERE t2.score > t.score) AS rank 
    FROM top100 t 
WHERE id = LAST_INSERT_ID() 
+0

많은 감사 - 나는 그것을 곧 – mmuller

+0

zerkms 갈 줄 것이다 난 그냥 코드를 사용하고 내 자신을 제거하거나 그래서에서 당신을 사용해야와 함께 :) 다루는 다른 많은 것들을했다 내 자신과 함께? – mmuller

+0

@mmuller : 내 쿼리가 그 일을한다고 생각합니다. 그렇죠? – zerkms

관련 문제