У меня есть списки пользователей с его точками и идентификатором игры. Мне нужно найти ранг указанного пользователя на основе порядка игры на максимальную lb_point. Ниже мой стол.Mysql выбрать количество запросов до достижения условия
lb_id user_id game_id room_id lb_point
------------------------------------------------
1 1 2 1 670
2 1 1 2 200
3 1 2 2 650
4 1 1 1 400
5 3 2 1 700
6 4 2 5 450
7 2 1 3 550
8 2 1 1 100
9 1 1 1 200
Я уже сделал это, используя PHP-код и его работу в порядке следующим образом.
$game_id = 2;
$user_id = 1;
$query_rnk = $this->db->query('SELECT user_id AS uid FROM leader_board WHERE game_id = "'.$game_id.'" GROUP by user_id ORDER BY lb_point DESC');
if ($query_rnk->num_rows() > 0){
$j=1;
foreach($query_rnk->result() as $row_rnk){
if($row_rnk->uid == $user_id){
$rnk_status = 1;
break;
}
$j++;
}
if($rnk_status == 1){
$resp['rank'] = $j;
}
}
Ответ: 2.
Но мне нужно, чтобы найти это с помощью одного запроса. Есть идеи?
Возможно, какое-то объяснение о том, что делает этот код, поможет. – sagi