Array
(
)

Como pegar Resultados do Mysql pulando o primeiro?

Cleyton Caetano
   - 02 dez 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?

Alan Mario
   - 02 dez 2014

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

Marisiana
   - 02 dez 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....

Huidemar Costa
   - 02 dez 2014

Experimente utilizar o comando SKIP

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

Fernando Blomer
   - 02 dez 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:

#Código

SELECT * FROM `AlgumaTabela` LIMIT 0, 10 

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

#Código
 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

#Código
 SELECT * FROM `AlgumaTabela` LIMIT 1, 100

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

Cleyton Caetano
   - 02 dez 2014


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

#Código

SELECT * FROM `AlgumaTabela` LIMIT 0, 10 

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

#Código
 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

#Código
 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
#Código
SELECT * FROM `AlgumaTabela` LIMIT 1, 100

Muito obrigada mesmo!

Cleyton Caetano
   - 02 dez 2014


Citação:
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

Ronaldo Lanhellas
   - 02 dez 2014


Citação:
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:

#Código

SELECT * FROM tabela ORDER BY id OFFSET 2;

Ronaldo Lanhellas
   - 02 dez 2014


Citação:
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:

#Código

SELECT * FROM tabela ORDER BY id OFFSET 2;

Marisiana
   - 02 dez 2014

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

Cleyton Caetano
   - 02 dez 2014


Citação:

Citação:
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:

#Código

SELECT * FROM tabela ORDER BY id OFFSET 2;


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

Ronaldo Lanhellas
   - 02 dez 2014


Citação:

Citação:

Citação:
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:

#Código

SELECT * FROM tabela ORDER BY id OFFSET 2;


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

Disponha !

Alan Mario
   - 02 dez 2014

Varios comandos!!! copiando...

Fernando C
   - 02 dez 2014


Citação:
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.

Marisiana
   - 03 dez 2014

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