Trypa 0 Denunciar post Postado Abril 26, 2008 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
Paulo Caesar 0 Denunciar post Postado Abril 26, 2008 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