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

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

QA

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

답변 2

본문

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

 

988135872_1584553591.3361.png

 

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

 

988135872_1584553743.5848.png

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

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

 


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

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

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

 

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

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

 

답변을 작성하시기 전에 로그인 해주세요.
전체 1
© SIRSOFT
현재 페이지 제일 처음으로