Ir para conteúdo

POWERED BY:

Arquivado

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

Erlen Fiuza

if dentro do order by

Recommended Posts

Olá pessoa beleza?

 

Estou tentando fazer o seguinte...

 

tenho uma tabela no banco de dados onde tenho anúncios cadastrados...nesta tabela tenho 2 campos um de 'cpc' (custo por crédito) e outro 'creditos'...

 

o que quero fazer é o seguinte:

 

1º verificar se o campo 'creditos' é maior que '0'

2º se for maior que '0' ordeno a tabela pelo campo 'cpc'

 

só q quero isso dentro do select. Tentei isso:

 

SELECT * FROM anuncios ORDER BY IF(creditos > 0) cpc DESC

 

só que não funcionou até agora... tem como alguém me dar uma luz aí? Valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase motta...

 

A questão é que analiso 1 campo e ordeno pelo outro

 

o problema é que se o cara não tiver créditos na conta eu não posso ordenar pelo campo cpc. Por isso preciso verificar se o campo créditos é > que 0 para depois ordenar pelo cpc

 

mas valeu mesmo assim...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas é se não for por cpc?

 

 

Lembre que o ORDER BY é linha a linha.

 

Pelo que entendi ...

 

SELECT * 
FROM anuncios 
ORDER BY (case when (creditos > 0) then cpc else ??? end) DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

É mais ou menos assim:

SELECT anuncios1.* FROM anuncios1 INNER JOIN conta_user ON anuncios1.dono = conta_user.email WHERE verificacao > 1 AND status = 'mostrar' ORDER BY (case when (conta_user.creditos > 0) then anuncios1.cpc end) DESC, cliques DESC, visualizacoes DESC

 

Parece que a ideia que tu mostrou deu certo!! Valeu! Vou testar e depois lhe digo...

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.