Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, preciso ordenar uma consulta da seguinte maneira:
Uma das colunas da tabela comtem o nome de 3 cores: Azul, rosa e verde
Preciso que quando a consulta seja feita, a ordenaçao das linhas sejaL: 1 as verdes, depois as azuis e por ultimo as rosas.
Precisava fazer isso com SQL
Alguem pode me ajudar?
Hora da gambiarra (sem que precise modificar sua tabela, obviamente :P)
SELECT
id,cor,CASE
corWHEN 'Verde' THEN 3
WHEN 'Azul' THEN 2
WHEN 'Rosa' THEN 1
END AS
rankFROM
tabelaORDER BY
rankDESCAgora, uma maneira muuito melhor de fazer isso, seria um usar um campo ENUM, e colocar na ordem que você quiser (Rosas = 0, Azul = 1, Verdes = 2)
E daí ficaria assim:
SELECT
id,corFROM
tabelaORDER BY
corDESCMuito mais rápido e eficiente. O campo 'cor' seria um ENUM('Rosa','Azul','Verde') e ele faz o ORDER BY automaticamente, e bem rápido ;)