Ordernar por "critério de pesquisa"
Prezados,
Quero saber se é possível efetuar uma consulta e ordenar os resultados pelo critério da pesquisa? Vou tentar explicar com um exemplo:
Vamos supor que eu tenha uma tabela com os seguintes registros:
id | nome
1 | Celular Samsung
2 | Celular Nokia
3 | Celular Motorola
Então resolvo executar a seguinte consulta:
SELECT nome FROM tabela WHERE nome LIKE '%celular samsung%' OR nome LIKE '%celular%' OR nome LIKE '%samsung%' ORDER BY nome;
Como resultado da consulta acima, teremos:
1ª posição: Celular Motorola
2ª posição: Celular Nokia
3ª posição: Celular Samsung
A ordem do resultado da pesquisa eu considero incorreto, pois a frase pesquisada é "celular samsung" e este deveria aparecer logo no início da consulta, mas não foi o que aconteceu.
Então fiz um ajuste na consulta:
SELECT nome FROM tabela WHERE nome LIKE '%celular samsung%' OR nome LIKE '%celular%' OR nome LIKE '%samsung%' ORDER BY nome LIKE '%celular samsung%' DESC, nome;
Como resultado do ajuste no ORDER BY, teremos:
1ª posição: Celular Samsung
2ª posição: Celular Motorola
3ª posição: Celular Nokia
Resolvido? Não exatamente pois, essa solução que fiz (até que me provem o contrário) eu considero uma gambiarra. Existe uma maneira correta de se resolver este problema? Ou esta é a maneira correta?
Discussão (2)
Carregando comentários...