Como pegar Resultados do Mysql pulando o primeiro?

02/12/2014

Eu quero pegar os registros normalmente na minha tabala com o id DESC mas eu queria que ele pulasse o primeiro registro que vier, como faço para pegar sempre do segundo resultado para frente?

Cleyton Caetano

Respostas

02/12/2014

Alan Mario

Estou acompanhando, mas por qual motivo pegar o segundo registro?
Responder Citar

02/12/2014

Marisiana

Como vc obtém o retorno do select?
Se for em um array você pode verificar a posição e não deixar listar o primeiro....
Responder Citar

02/12/2014

Huidemar Costa

Experimente utilizar o comando SKIP

select skip 2 campo1, campo2 from tabela order by campo1 desc
Responder Citar

02/12/2014

Fernando Blomer

Não sei se consigo responder sua duvida, mas para esse caso pode ser usado o comando LIMIT. De forma bem simples e direta:

SELECT * FROM `AlgumaTabela` LIMIT 0, 10 

O código acima retorna os 10 primeiros resultados da tabela referenciada

 SELECT * FROM `AlgumaTabela` LIMIT 5, 5

O código acima retorna os 5 primeiros resultados após o 5º elemento.

Para o seu caso ficaria assim

 SELECT * FROM `AlgumaTabela` LIMIT 1, 100

O código acima retorna os 100 primeiros resultados após o 1º elemento.
Responder Citar

02/12/2014

Cleyton Caetano

Não sei se consigo responder sua duvida, mas para esse caso pode ser usado o comando LIMIT. De forma bem simples e direta:
SELECT * FROM `AlgumaTabela` LIMIT 0, 10 
O código acima retorna os 10 primeiros resultados da tabela referenciada
 SELECT * FROM `AlgumaTabela` LIMIT 5, 5
O código acima retorna os 5 primeiros resultados após o 5º elemento. Para o seu caso ficaria assim
 SELECT * FROM `AlgumaTabela` LIMIT 1, 100
O código acima retorna os 100 primeiros resultados após o 1º elemento.

você é o cara, isso salvou meu dia :D
SELECT * FROM `AlgumaTabela` LIMIT 1, 100

Muito obrigada mesmo!
Responder Citar

02/12/2014

Cleyton Caetano

Estou acompanhando, mas por qual motivo pegar o segundo registro?

Porque o primeiro vou exibir ele separado dos outros demais, então para não ta fazendo um monte de gambiarra quero exibir o primeiro e na outra parte do código eu vou exibir a partir do segundo :D
Responder Citar

02/12/2014

Ronaldo Lanhellas

Eu quero pegar os registros normalmente na minha tabala com o id DESC mas eu queria que ele pulasse o primeiro registro que vier, como faço para pegar sempre do segundo resultado para frente?


Você pode usar o OFFSET, que move o cursor para onde você deseja começar a leitura. Faça assim:

SELECT * FROM tabela ORDER BY id OFFSET 2;
Responder Citar

02/12/2014

Ronaldo Lanhellas

Eu quero pegar os registros normalmente na minha tabala com o id DESC mas eu queria que ele pulasse o primeiro registro que vier, como faço para pegar sempre do segundo resultado para frente?


Você pode usar o OFFSET, que move o cursor para onde você deseja começar a leitura. Faça assim:

SELECT * FROM tabela ORDER BY id OFFSET 2;
Responder Citar

02/12/2014

Marisiana

Interessante, não conhecia essas funções!!
São funções apenas do MySQL?
Responder Citar

02/12/2014

Cleyton Caetano

[quote]Eu quero pegar os registros normalmente na minha tabala com o id DESC mas eu queria que ele pulasse o primeiro registro que vier, como faço para pegar sempre do segundo resultado para frente?


Você pode usar o OFFSET, que move o cursor para onde você deseja começar a leitura. Faça assim:

SELECT * FROM tabela ORDER BY id OFFSET 2;
[/quote]

Ronaldo Lanhellas sempre me ajudando :D gostei ficou mais simples assim, mais simples!
Responder Citar

02/12/2014

Ronaldo Lanhellas

[quote][quote]Eu quero pegar os registros normalmente na minha tabala com o id DESC mas eu queria que ele pulasse o primeiro registro que vier, como faço para pegar sempre do segundo resultado para frente?


Você pode usar o OFFSET, que move o cursor para onde você deseja começar a leitura. Faça assim:

SELECT * FROM tabela ORDER BY id OFFSET 2;
[/quote]

Ronaldo Lanhellas sempre me ajudando :D gostei ficou mais simples assim, mais simples![/quote]

Disponha !
Responder Citar

02/12/2014

Alan Mario

Varios comandos!!! copiando...
Responder Citar

02/12/2014

Fernando C

São funções apenas do MySQL?


o Postgres suporta os dois, mas dependendo do resultado que vc deseja,
precisa combina-los;
offset oculta linhas;
se quiser apenas limitar o nº de registros, use apenas o limit;
se vc deseja limitar o nº de linhas retornadas E ocultar linhas, aí utiliza também o limit;
ex: offset 1 limit 10 oculta 1 linha e exibe 10 registros

no sql server a função é top(*)
ex: select top 10 (*) from tabela
retorna todas as colunas limitando a exibição a 10 registros;

para omitir alguma linha desse resultado, simula-se o efeito com o operador not in
numa subconsulta;
no exemplo:
select top 10 * from tabela where id not in(select min(id) from tabela) order by id;
oculta o menor id dos 10 primeiros exibidos na consulta principal (ou "externa").

No Oracle, pesquise por rownum
(basicamente vc ordena os registros e depois o omite o resultado que seja maior ou menor que 1 limite definido; é 1 pouco confuso, o próprio livro p/ OCA reconhece isso)... :-D

esses "limits" são muito úteis também para paginação.
Responder Citar

03/12/2014

Marisiana

Entendi!
Eu conhecia o rownum do Oracle.
São comando bem úteis sim!
Obrigada pela explicação Fernando!
Responder Citar