14/01/2014

Ajuda com listagem por data

olá galera.....preciso de uma ajudinha básica mas que não consegui resolver até o momento.

Já tenho um select todo montado para puxar os registro de um tabela ordenados pela quantidade de visualizações. Agora queria restringir este select para listar apenas os registro postados da data atual até 7 dias atrás ordenados pela quantidade de visualizações:

Caso ajude, aqui está o select:
[code]
SELECT id, data, titulo, view FROM materia ORDER BY view DESC LIMIT 5
[/code

Obrigado desde já a ajuda.]

PHP

Carlos Magno

Respostas

14/01/2014

William (devwilliam)

Bom colega acredito que você esteja usando MySQL, se entendi bem sua dúvida acho que esse código pode ajudar.

SELECT id, data, titulo, view 
FROM materia 
WHERE data between date_sub(curdate(), INTERVAL 7 DAY) and curdate() 
ORDER BY view DESC 
LIMIT 5


Ele captura todos os registros entre hoje e 7 dias atrás.

Qualquer dúvida estou a disposição.
Responder Citar

15/01/2014

Marcio Araujo

esse comando pode ser utilizado na propria linguagem?
Responder Citar

15/01/2014

William (devwilliam)

Olá Marcio, eu passei para ele uma instrução SQL que vai trazer somente os registros dentro do prazo estipulado, filtrar direto em linguagem de programação acho que seria mais sofrível para aplicação.

Gosto de transferir esse tipo de complexidade para o servidor de banco de dados, abuso de instruções SQL para que a minha aplicação receba os dados prontos para serem exibidos em certos casos isso significa uma melhora grande em termos de performance.

Administro uma base de dados com mais de 70 milhões de registros em uma tabela, as instruções SQL acabam salvando minha pele em termos de velocidade, claro com tabelas bem indexadas senão pode ser a morte de uma aplicação.
Responder Citar

15/01/2014

Carlos Magno

Valeu William, show de bola.....deu certo e fica como aprendizado...rsrsrs....meu muito obrigado.
Responder Citar

15/01/2014

William (devwilliam)

Fico contente em ter ajudado, estou encerrando o tópico!
Responder Citar