Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoas, seguinte.
Tenho uma tabela chamada tbl_pontuacao nela tem 2 colunas: col_id e col_pontos
Suponhamos que eu tenha 5 registros da seguinte maneira
col_id = 1
col_pontos = 100
col_id = 5
col_pontos = 20
col_id = 4
col_pontos = 76
col_id = 2
col_pontos = 167
col_id = 3
col_pontos = 10
A questão é... como eu posso saber em que colocação o col_id = 5 esta, neste exemplo acima somando pela mente eu sei que ele esta em 4º lugar mais como eu posso fazer isso pelo mysql e informar em que colocação determinado registro esta.
Obrigado.
Att.: Caio
Não, vamos supor que eu tenha um sistema de pontuação, a tabela até aquele momento esta assim
tbl_pontuacao
id = 1 : user = 2 : points = 100
id = 2 : user = 9 : points = 14
id = 3 : user = 7 : points = 180
id = 4 : user = 3 : points = 13
id = 5 : user = 5 : points = 140
Com isso eu insiro um novo registro com os seguintes dados
id = 6 : user = 12 : points = 170
E dai em seguida eu preciso através do sql buscar em que posição na colocação este registro ficou, nesse caso pela lógica eu sei que ele ficou em 2º lugar, mais como fazer isso pelo código, como fazer para que o sistema me mostre em qual colocação determinado registro ficou.
* Eu preciso pegar a colocação apenas de 1 registro, não preciso listar, ou colocar em ordem, preciso apenas da colocação de determinado registro levando em conta vários registros.
Quem puder me ajudar.
Att.: Caio
Obrigado, estarei pesquisando a respeito!
Att.: Caio,
Boa tarde
Desculpe ressuscitar o tópico, mas pesquisei o assunto e encontrei a solução. Bom ficar registrado aqui:
1) Para exibir o Rank geral (exemplo com os primeiros 10 registros)
SELECT u.col_id, @rownum:=@rownum+1 AS rownum, u.col_nome
FROM (
SELECT col_id, col_nome
FROM tbl_pontuacao
ORDER BY col_pontos desc LIMIT 102) Tenho o col_id do usuário (15 por exemplo) e preciso saber a posição dele no Ranking
SELECT rank
FROM (select @rownum:=@rownum+1 'rank', p.col_id from tbl_pontuacao p,
(SELECT @rownum:=0) r ORDER BY col_pontos desc) m where m.cod_id=15
Espero ter ajudado.
No SQL de sua consulta, use um ORDER BY col_pontos DESC para ordenar.
Agora fiquei em duvida, você quer que retorne uma coluna com a ordem da colocação?