Como pegar Resultados do Mysql pulando o primeiro?

MySQL

PHP

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

Cleyton Caetano

Curtidas 0

Respostas

Alan Mario

Alan Mario

02/12/2014

Estou acompanhando, mas por qual motivo pegar o segundo registro?
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

02/12/2014

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....
GOSTEI 0
Huidemar Costa

Huidemar Costa

02/12/2014

Experimente utilizar o comando SKIP

select skip 2 campo1, campo2 from tabela order by campo1 desc
GOSTEI 0
Fernando Blomer

Fernando Blomer

02/12/2014

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.
GOSTEI 0
Cleyton Caetano

Cleyton Caetano

02/12/2014

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!
GOSTEI 0
Cleyton Caetano

Cleyton Caetano

02/12/2014

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
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

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?


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;
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

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?


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;
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

02/12/2014

Interessante, não conhecia essas funções!!
São funções apenas do MySQL?
GOSTEI 0
Cleyton Caetano

Cleyton Caetano

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?


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;


Ronaldo Lanhellas sempre me ajudando :D gostei ficou mais simples assim, mais simples!
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

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?


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;


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


Disponha !
GOSTEI 0
Alan Mario

Alan Mario

02/12/2014

Varios comandos!!! copiando...
GOSTEI 0
Fernando C

Fernando C

02/12/2014

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.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

02/12/2014

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