Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dnlreis

Numero da linha no mysql - (tipo rownum no Oracle)

Recommended Posts

Eae pessoal, alguem sabe como obter o numero da linha no select do mysql, no banco oracle eu usaria o Rownum.

 

Tipo: select Numero_da_Linha,

Nome

From Funcionarios;

 

 

 

Vlwwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

nunca usei o Oracle mas nao seria o LIMIT do MySQL?

 

Esse Rownum é a quantidade de registros que retornará a consulta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nunca usei o Oracle mas nao seria o LIMIT do MySQL?

 

Esse Rownum é a quantidade de registros que retornará a consulta?

 

 

Não, não é isso, mas respondendo sua pergunta, se o rownum for utilizado dentro da clausula where ele pode limitar a quantidade de registros retornados.

 

O que eu quero é o seguinte:

 

Exemplo

Select Numero_da_Linha,

Nome

from clientes

 

Resultado

Numero_da Linha - Nome

1 ------------------- Daniel

2 ------------------- Leo

3 ------------------- Marcos

....

255 ----------------- Jose

 

 

Agora qual função eu colocaria no lugar da coluna Numero_Da_Linha para obter aquele resultado???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola meu amigo....

 

Fazer isso que você quer em MySQL nao é exatamente simples, pq nao tem rownum do oracle nem o rank() do M$SQL, e eu sugiro q você implemente isso diretamente na programaçao.

 

 

A titulo de curiosidade ou caso você nao possa fazer isso na programaçao:

 

SELECT

t1.nome as nome,count(t2.nome) as ranking

FROM tab as t1, tab as t2

where

t1.nome > t2.nome OR t1.nome = t2.nome

GROUP By t1.nome

ORDER BY ranking

 

 

Isso ordena os nomes do menor pro maior colocando o numerozinho do lado, nao se preocupe se você nao entender a consulta, a principio ela nao faz mto sentido mesmo

 

Obviamente em termos de performance fazer via programaçao tambem eh bem mais rapido e eficiente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia utilizar uma variável também

 

SET @var = 0;

SELECT *,@var:=@var+1 FROM `tabela`

 

Apesar de que isso não funcionaria bem com um "WHERE" ali, mostraria do 1 ao ultimo valor, constantemente, sem voltar necessariamente o valor de que seria o "row"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.