테스트 사이트 - 개발 중인 베타 버전입니다

mysql 쿼리문으로 순위를 update 하고 싶습니다. 채택완료

JJINY 5년 전 조회 4,122

node.js 독학을 하고 있습니다.

 

 

app_player 테이블의 money 크기를 비교해서 rank에 순위를 삽입하는 쿼리문을 짜고 싶습니다.

 

UPDATE app_player A,(SELECT B.user_id, RANK() OVER(ORDER BY money DESC) RK FROM app_player B) C SET A.rank = C.RK WHERE A.user_id=C.user_id

해봤는데 mysql 버전이 낮아 rank()를 쓸 수가 없습니다.

 

서버 호스팅이라 버전을 올릴수도 없어서 rank()를 쓰지 않는 쿼리문을 찾고 있는데 힘드네요ㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

rownum 기능을 함 써보시는건 어떠신지요. 이게 맞는지 모르겠지만(기억이 가물가물)

 

</p>

<p>UPDATE app_player A, (

    SELECT  

        B.userid,

        B.money,

        @rownum := @rownum + 1 AS RNUM

    FROM app_player B, (SELECT @rownum := 0) AS ROWNUM

    ORDER BY B.money DESC

) C

SET 

    A.rank = C.RNUM

WHERE

    A.userid = C.userid</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

5년 전

query문을 사용하면 좋겠지만...

서버 호스팅 버전을 올릴수 없다면...

 

PHP의 배열을 이용하시는 방법은 어떠신가요?

배열 비교, 정렬하시면 원하시는 답을 얻을수 있지 않을까합니다.

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인