0
가이 하나 개의 테이블 인 점수에서 다른 사람에 비해 순위하기 mysql- 내 MEMBER_ID가 '35'인 경우 , 내 순위가 될 것 '1',은 자기
제 MEMBER_ID가 '22'인 경우 제 MEMBER_ID가 '34'인 경우내 순위가
,
내 MEMBER_ID가 '33'인
, 내 순위 '2'것, '2'일 것이다 내 순위가 '3',....
등등.
시도 - 1
SELECT * FROM (
SELECT member_id,
@points := @points + 1 AS rank
FROM test_member p, (SELECT @points := 0) r
ORDER BY points DESC
) t
WHERE member_id='33';
+-----------+----------------------------------------+
| member_id | rank |
+-----------+------------+------+---------+----------+
| 33 | 3.000000000000000000000000000000 |
+-----------+----------------------------------------+
시도 - 2 (mysql을 + PHP는 방법)
<?php
$simulation_ponits = 1000;
$sql = '
SELECT t.points, COUNT(*) as count_num
FROM test_member as t
WHERE t.points > ' . $simulation_ponits . '
GROUP BY t.points
HAVING t.points > ' . $simulation_ponits .'
';
$result = mysql_query($sql);
$count_rank = 1;
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$count_rank +=$row['count_num'];
}
+--------+-----------+
| points | count_num |
+--------+-----------+
| 2000 | 2 |
| 3000 | 1 |
+--------+-----------+
# $count_rank => 3
두 시도는 MySQL의 + 바로 결과를 보여줄 수 PHP는 방법은 내가 할 수있는,이다 다른 방법으로이 작업을 시도 했습니까? 미리 감사드립니다.
예, 이것이 내가 원하는 것입니다, 감사합니다. – kkasp