결과가 하나의 숫자 일 때 위와 같은 결과를 얻을 수 있지만 지금은 여러 행을 반환 할 수 있어야하며 사용자 정의 변수를 사용하기 때문에이 쿼리를 처리 할 수 없습니다. .. 여기 원래 절차입니다mysql 사용자 정의 변수를 대체하십시오.
CREATE DEFINER=`root`@`%` PROCEDURE `MapRank`(pTankID bigint,pMapID int, pColor int(2))
BEGIN
SET @RankNumber:=0;
select RankNumber
from
(select
TankID,
@RankNumber:[email protected]+1 as RankNumber,
MapID,
Color
from MAPDATA WHERE MapID = pMapID order by Rank DESC, TotalPP DESC) Query1 where TankID = pTankID AND COLOR = pColor ;
END
이것은 하나의 숫자를 반환합니다.이 숫자는 본질적으로 레코드 수를 계산하여 "행"위치를 제공합니다. 나는 모든의 mapId/컬러 콤보
모든 계급을 볼 수 있도록
는 지금이 내가 현재 사용하지 않는 것을 가지고 무엇을,의 mapId 및 색상의 어디에서 나에게 모든 행을 줄을 변경해야
SET @RankNumber:=0;
select
RankNumber,MapID,COlor
from
(select
TankID,
@RankNumber:[email protected] + 1 as RankNumber,
MapID,
Color
from
MAPDATA
order by TotalPP DESC) Query1
where
TankID = 18209 ORDER BY RankNumber
일 항복 쿼리 결과는 다음과 같은 같습니다
1062 3 1
3544 3 0
6717 17 1
6752 17 3
7453 3 2
7860 17 0
7984 17 2
9220 3 3
내가 수동으로 말할 수 실행할 경우 순위 번호가 내가 할 첫 번째 쿼리와 9220 말합니다지도 상에 있습니다 ID 3 색 3 나는이 와서 좋은 것 그 ... 어떤 도움을 사용할 수 있도록 이상적으로는 가능한 한 다른 사람부터 임시 변수를 사용하지 않고 수행 여러 MySQL의 연결에서 가능하게 할 수 있어야이
6022
.