Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como tornar uma consulta de pesquisa sql mais poderosa?


algo como
Select * from TableName where Name Like 'Spa%'
ORDER BY case when soundex(name) = soundex('Spa') then '1' else soundex(name) end

deve funcionar ok.

na verdade isso vai funcionar melhor
Select * from TableName where Name Like 'Spa%'
ORDER BY DIFFERENCE(name, 'Spa') desc;

FWIW Fiz alguns testes rápidos e se 'Nome' estiver em um ÍNDICE NÃO CLUSTERADO o SQL usará o índice e não fará uma varredura de tabela. Além disso, LIKE parece usar menos recursos que charindex (que retorna resultados menos desejáveis). Testado em sql 2000.