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.
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:
SELECT * FROM `novidades` ORDER BY `pendurar`, `id` DESC LIMIT 0,4
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!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
Um abraco gurizada e agradeco desde ja!
- RonsisM likes this