Ir para conteúdo

POWERED BY:

Arquivado

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

Ronaldo Marcos

IF dentro do SELECT

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa a cláusula case

 

case when data = '10/10/08' then data else data + 1 end

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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.