Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Queremos executar outro AND dentro do Select desde que a data seja tal.. vejam o IF no codigo abaixo, ele nao funciona, claro, é apenas pra dar uma ideia do que quero fazer... se o registro tiver uma data menor/igual aquela ele usa o AND horapublicacao, senao ignora. Já procurei algo parecido na documentacao do MYSQL e não achei nada que pudesse fazer isso, Obrigado.
SELECT cod_noticia,cod_departamento,titulo,horapublicacao,ativa,datapublicacao,retranca
, imagem, resumo, ultimasnoticias
from painel_noticia
where ativa='S'
AND ultimasnoticias = 'S'
AND FLASHCAPA <> 'S'
AND imagem = ''
AND CAPA = 'S'
AND datapublicacao <= now()
if (datapublicacao <= '2008-07-24') then
AND horapublicacao <= '10:11'
end if
order by datapublicacao DESC, horapublicacao DESC limit 0,11
Não funcionou... ele da erro no comando case, a versao de MYSQL é 4.1.22, Obrigado.
olá,
tenta esta gambiarra:
>
SELECT *
from painel_noticia
where
ativa='S'
AND ultimasnoticias = 'S'
AND FLASHCAPA <> 'S'
AND imagem = ''
AND CAPA = 'S'
AND datapublicacao <= now()
AND IF(datapublicacao <= '2008-07-24', horapublicacao <= '10:11', horapublicacao = horapublicacao)
order by datapublicacao DESC, horapublicacao DESC limit 0,11
Resumidamente: o IF verifica a condição em vermelho, se for verdadeiro o item em verde será utilizado na cláusula where, caso contrário o outro parâmetro será utilizado. Deixei o campo sendo igual a ele mesmo pois neste caso é sempre verdadeiro e quem fará a diferença serão as outras condições do Where.
Fiz um teste na versão 5.0 e 5.1 e funcionou legal, infelizmente não tenho versões anteriores para verificar.
boa sorte!
http://forum.imasters.com.br/public/style_emoticons/default/grin.gif
Isso não é Gambiarra, é uma obra de arte... nenhum outro método que estávamos usando mantinha a performance como ele. Obrigado Cassitos
usa a cláusula case
case when data = '10/10/08' then data else data + 1 end