하나 개의 문장으로 하위 범주를 가지고 MySQL의 테이블에 순위 높은 번. 기본적으로 두 개의 PlayerID가있는 경우 : PlayerID 3의 시간은 10.1 초이고 PlayerID 4의 시간은 10.3 초이며 PlayerID 3은 2 포인트를 얻고 PlayerID 4는 PlayerID 3의 시간이 나빠서 1 포인트를 얻습니다. 플레이어 ID가 4 개인 경우 1 위 시간의 선수는 4 점을 얻게되고 그 다음 최고 시간은 1 점씩 내려갑니다. 이 모든 것은 기본적으로 역순으로 순위가 1 순위가 아니라 최상위 순위를 얻는 것입니다.UPDATE 내가 가진 선수보다 더 많은 포인트가 있어야합니다 <em>낮은</em> 시간 (시간)와 필드</p> <pre><code>MapID | Type | Style | PlayerID | Time | Points </code></pre> <p>플레이어 (PlayerID)와 함께 시간을 테이블을 불렀다
내 모든 프로그램을 하나의 문장으로 작성해야하는 이유는 내 프로그램을 작성하는 언어가 Sourcepawn 쿼리에 구분 기호 (;)를 사용할 수 없습니다. 그리고 하위 카테고리를 언급하는 이유는 MapID, 유형, 스타일의 모든 조합이 자체 하위 카테고리라는 것입니다. 여기
더 쉽게 내 문제를 설명하는 이미지입니다 : http://i.imgur.com/W8d90P4.png 난 그냥의 mapId에 따라 같은 점을 분류하려면를, 유형, 스타일 및 시간은 SQLite는 함께 일하기 전에 해결책을 마련 않았다 를 주문했다 :UPDATE times
SET Points = (
SELECT t1.Rank
FROM (
SELECT t1.id, count(*) AS Rank
FROM times AS t1, times AS t2
WHERE t1.MapID=t2.MapID
AND t1.MapID=%d
AND t1.Type=t2.Type
AND t1.Type=%d
AND t1.Style=t2.Style
AND t1.Style=%d
AND t1.Time <= t2.Time
GROUP BY t1.PlayerID
ORDER BY t1.Time
) AS t1
WHERE t1.id=times.id
)
WHERE MapID=%d AND Type=%d AND Style=%d
SQLite의 솔루션은 무엇입니까? 나는 그것이 MySQL과 함께 작동하도록 수정 될 수 있다고 확신한다. – Oswald
"UPDATE times SET Points = (SELECT t1.ROWID, count() SELECT t1.ROWID, count() AS는 AS t1 시간, AS t2는 t1.MapID = t2.MapID 및 t1.MapID = % d AND t1 시간을 계승합니다. 유형 = t2.Type AND t1.Type = % d AND t1.Style = t2.Style AND t1.Style = % d AND t1.Time <= t2.Time GROUP BY t1.PlayerID ORDER BY t1.Time) AS t1 WHERE t1.ROWID = times.ROWID) MapID = % d 및 유형 = % d AND 스타일 = % d "매우 부피가 크지 만 효과가있었습니다. 얼마나 부피가 크고 동일한 변수가 여러 번 필요합니다. – user2447067