Jump to content


_AleMAuM_

Member Since 15/09/2005
Offline Last Active 08/06/2007, 00:37
-----

#720869 Ordenar Uma Query Por Dois Campos

Posted by _AleMAuM_ on 20/03/2006, 05:59

Eaw galera, tudo belezinha?

Estou com um pequeno problema, preciso executar uma query mas ela tem que ordenar dois campos, sendo que o primeiro seria o campo pendurar na ordem DESC e depois o campo id tambem na ordem DESC.

Exemplo:
SELECT * FROM `novidades` ORDER BY `pendurar`, `id` DESC LIMIT 0,4

Agora vem o problema, usando ORDER BY, ele vai ordenar o campo ID por DESC e ordenar o campo PENDURAR por ASC, como o campo pendurar somente tera os valores 0 e 1, peguei o meu amansa burro do MYSQL dei uma analisa e acabei fazendo uma guambiarra no SQL para satisfazer oque estava precisando!

Exemplo:
Consulta:
SELECT `id`, `pendurar`, (IF(pendurar=1,9000000000,0)+id) AS `ordem` FROM `novidades` ORDER BY `ordem` DESC LIMIT 0,4

Resultado:
id  pendurar ordem
1    1            9000000001
4    0            4
3    0            3
2    0            2

Mas nao sei quanto esta guambiarra ira influenciar na velocidade do MYSQL, pois ele tera que verificar todos os registros e somar os mesmo para criar o campo ORDEM, testei localmente com 100 mil registro e houve uma sensivel diferença de desempenho, se alguem conhece outro modo de ordenar sem precisar fazer esta guambiarra estou aceitando sugestoes!

Um abraco gurizada e agradeco desde ja!


IPB Skin By Virteq