Listar primeira posição vaga em tabela

Para saber qual a primeira posição vaga em uma tabela (mysql 5) (vaga, e não a nova), use o sql a baixo:

select g.campo+1 as proximo_codigo_vago
from tabela g
where (select f.campo from tabela f where f.campo > g.campo order by f.campo limit 1)-g.campo > 1
order by g.campo
limit 1

Explicando o SQL

select g.campo+1 as proximo_codigo_vago ( seleciona o campo atual + 1, para saber a próxima posição vaga na tabela)

from tabela g (a tabela a ser verificada)

where (select f.campo from tabela f where f.campo > g.campo order by f.campo limit 1)-g.campo > 1 (onde o próximo registro selecionado através de uma sub-sql em comparação do registro atual menos o registro atual for maior que 1, ou seja, entre próximo registro e o registro atual, existe um espaço vago)

order by g.campo (ordeno pelo campo a se busca)

limit 1 (retorno apenas o primeiro registro)

Parece meio confuso no começo, mas depois que entender a lógica fica simples de compreender.

Espero ter ajudado.

Até a próxima.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: