Ordenar colunas no MySQL deixando campos null no final

9 years ago by Jaime Neto

Você já teve que fazer uma consulta em alguma tabela de um banco de dados MySQL, em que você deseja ordenar por uma coluna específica, e no início dos resultados aparecem todos os campos null dessa coluna? Daí você quer manter a ordem, mas quer que os campos null fiquem no final dos resultados? Como você faz?

Bom, recentemente descobri uma forma bem fácil de fazer isso, e resolvi compartilhar aqui com quem mais precisar.

O que você deve fazer, é inverter a ordem de ASC para DESC, e adicionar um sinal de menos (-) antes do nome da coluna. Veja o exemplo:

SELECT * FROM table_name ORDER BY -(column_name) DESC

Os parênteses são opcionais, mas recomendo que use, pois caso você esteja usando algum gerador de código que adicione as aspas no nome da coluna, essas ficarão dentro dos parênteses e não deverão causar problemas com o sinal de menos.

Prático, não? :D

Comments