Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hugo Fabricio

[Resolvido] Consulta

Recommended Posts

Boa noite,

 

Estou com a seguinte dúvida, é possível fazer uma consulta de x ultimos registros menos x.

 

Exemplo, tenho uma tabela de notícias e gostaria de pegar as últimas 04 notícias menos as 04 últimas. (30 notícias, as 04 últimas seriam 27, 28, 29 e 30, mais eu gostaria de buscar as 04 ultimas menos estas 04, começando então da 23.

 

Está tabela vai ser atualizada constantemente.

 

Peço desculpa pela forma de explicar a minha dúvida.

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite amigo,

 

Bem simples eu creio. Consegui assim:

 

SELECT * FROM tabela a
WHERE a.id BETWEEN (SELECT (MAX(b.id) - 7) FROM tabela B) AND (SELECT (MAX(c.id) - 4) FROM tabela c);

E ainda assim, porém os registros vem do maior pro menor:

 

SELECT * FROM tabela a
WHERE a.id < (SELECT (MAX(b.id) - 4) FROM tabela B)
ORDER BY a.id DESC LIMIT 4;

Quem sabe haja até uma maneira mais simples.

 

Espero que ajude, abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui funcionou de boa (MySQL 5):

 

Retorna os campos de quatro notícias do maior para o menor ID, excetuando-se as dos quatros maiores IDs.

 

SELECT *
   FROM noticias
   WHERE idnoticias NOT IN (
       SELECT *
           FROM (
               SELECT idnoticias FROM noticias ORDER BY idnoticias DESC LIMIT 4)
           AS x
   )
   ORDER BY idnoticias DESC LIMIT 4

 

- Obs: supondo que a tabela que contém as notícias se chama 'noticias' e a coluna que armazena o ID se chame 'idnoticias' e esteja com AUTO_INCREMENT.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.