mysql 쿼리문으로 순위를 update 하고 싶습니다.
본문
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
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의 배열을 이용하시는 방법은 어떠신가요?
배열 비교, 정렬하시면 원하시는 답을 얻을수 있지 않을까합니다.
답변을 작성하시기 전에 로그인 해주세요.