Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Trypa

Ordenação personalizada de consulta

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hora da gambiarra (sem que precise modificar sua tabela, obviamente :P)

 

SELECT `id`,`cor`,

CASE `cor`

WHEN 'Verde' THEN 3

WHEN 'Azul' THEN 2

WHEN 'Rosa' THEN 1

END AS `rank`

FROM `tabela`

ORDER BY `rank` DESC

 

Agora, 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`,`cor`

FROM `tabela`

ORDER BY `cor` DESC

 

Muito 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 ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.