sexta-feira, 23 de março de 2012

MySQL - RowNum

O MySQL (até a versão 5.1, pelo menos) não possui uma coluna que retorna o número da linha, semelhante ao ROWNUM do Oracle. Para 'driblar' esta situação, podemos criar uma variável auxiliar, iniciando-a com zero e a cada linha retornada, acrescentar 1 a ela. Veja como:

Sintaxe 1:

SET @<variavel>:=0;
SELECT @<variavel>:=@<variavel>+1, <col-1>, <col-2>, ..., <col-n> from <tabela>;


Exemplo:

SET @rownum:=0;
SELECT @rownum:=@rownum+1 as rownum, t.* from tabelinha t;


Atenção:
A variável deve ser reiniciada (zerada) a cada execução do select !


Sintaxe 2:



SELECT @<variavel>:=@<variavel>+1, <col-1>, <col-2>, ..., <col-n> from <tabela>, (select @<variavel>:=0) r;

Exemplo:

SELECT @rownum:=@rownum+1 as rownum, t.* from tabelinha t, (select @rownum:=0) r;

Nenhum comentário:

Postar um comentário