Preciso ordenar uma consulta pelo valor de um campo. Se está vazio ou não
Eu preciso converter o valor da coluna order_by
para um booleano e o tipo de coluna é varchar
Todas as linhas em que order_by
está vazia ou nula devem ser ordenadas por último na consulta
SELECT *
FROM table
ORDER BY CAST(order_by, 'boolean')
Aqui está uma maneira concisa usando a função IFNULL()
ou adicionando a função IF()
ATUALIZAÇÃO 2017-03-22 14:43 EDT
ypercubeᵀᴹ tem mais uma sugestão:
Ainda mais curto:
desde
NULL
<''
< qualquer outra coisa (eu acho).Isso provavelmente tem uma vantagem que
(ou algum índice composto que termina com
order_by
) pode ser usado.