Executando uma pesquisa de banco de dados ASP.NET com o StartSwith Keyword
Pergunta
Eu tenho uma consulta. Estou desenvolvendo um site que possui um mecanismo de pesquisa. O mecanismo de pesquisa é a principal função. É um site de diretório de negócios.
Um presente, tenho SQL de pesquisa básica que pesquisa no banco de dados usando a palavra -chave "curtir".
Meu cliente me pediu para alterar a função de pesquisa, portanto, em vez de usar a palavra -chave "curtir", eles estão depois de algo como a palavra -chave "StartSwith".
Para esclarecer essa necessidade aqui está um exemplo. Se alguém digita "PLU" para encanadores na caixa de texto, ele retorna atualmente, por exemplo,
- Encanamento e cobertura do estado central
- Encanamento ilimitado
O cliente só quer devolver o "encanamento ilimitado" porque inicia "PLU" e não contém "" PLU "
Eu sei que isso é um pedido estranho e talvez bobo, no entanto, alguém tem algum exemplo de código SQL para me apontar na direção certa sobre como atingir esse objetivo.
Qualquer ajuda seria muito apreciada, obrigado ...
Solução
Ao invés de:
select * from professions where name like '%plu%'
, use uma cláusula WHERE sem o %principal:
select * from professions where name like 'plu%'
Outras dicas
que tal agora:SELECT * FROM MyTable WHERE MyColumn LIKE 'PLU%'
Observe que o signo % está apenas no lado direito da string
Exemplo no MS SQL
LIKE
Não vou lhe dar o desempenho necessário para uma pesquisa realmente eficaz. Olhando para algo como Lucence
ou a pesquisa de texto completa do seu motor equivalente.