0cool 0 Denunciar post Postado Abril 23, 2011 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 Compartilhar este post Link para o post Compartilhar em outros sites
IceCOld 1 Denunciar post Postado Abril 24, 2011 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? Compartilhar este post Link para o post Compartilhar em outros sites
0cool 0 Denunciar post Postado Abril 24, 2011 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 Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 25, 2011 Tente usar algo como o rownum do Oracle. http://jimlife.wordpress.com/2008/09/09/displaying-row-number-rownum-in-mysql/ http://forums.mysql.com/read.php?20,38419,38442 http://dev.mysql.com/doc/refman/5.0/en/user-variables.html http://snippets.aktagon.com/snippets/156-MySQL-rownum-equivalent Compartilhar este post Link para o post Compartilhar em outros sites
0cool 0 Denunciar post Postado Abril 26, 2011 Obrigado, estarei pesquisando a respeito! Att.: Caio, Compartilhar este post Link para o post Compartilhar em outros sites
rog.cesar 0 Denunciar post Postado Novembro 8, 2011 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 10 ) u, (SELECT @rownum:=0) r 2) 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. Compartilhar este post Link para o post Compartilhar em outros sites