Ir para conteúdo

POWERED BY:

Arquivado

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

asdruboows

Busca avançada em SQL?

Recommended Posts

seria assim tem quero que faça uma busca nos registros de uma tabela de um SQL "PALAVRA_CHAVE", uma busca avançada tipocom opção de buscar pela frase ou por palavras tipo;o usuario digita "João e Maria" ai ele escolhe buscar por "João e Maria" ou buscar separadamente... "João" "e" "Maria"...e mostrar onde tem exatamente "João e Maria" ou onde tenha as 3 palavras separadas mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para começar, no formulário onde o usuário for digitar a palavra para busca, você deve criar , tipo checkbox, com as opções de busca.Quando o carinha postar, você faz um case e seleciona o tipo de select que você quiser. É possível pegar e separar as palavras como você quer, depende do objetivo de sua busca. Para mim, é indiferente. O interessante numa busca é procurar palavras exatas, que contenham certa expressão ou que comecem ou terminem com uma letra.Entendeu?...

Compartilhar este post


Link para o post
Compartilhar em outros sites

poxa... alguem pode me ajudar???é assim... preciso de uma rotina pois...ja consegui criar uma que busca "frase exata" a outra que busca por "ou" né... ou uma palavra ou outra.. agora preciso de uma que faça "e" as duas palavras em um mesmo registro não importando a ordem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

completo.<%Set banco=server.CreateObject("ADODB.Connection")banco.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=seubanco.mdb"Set tb=server.CreateObject ("ADODB.RecordSet") sql = "SELECT * FROM allbusca WHERE palavrachave LIKE '%"&Busca&"%'" tb.open sql, banco,3,3if tb.recordcount > 0 then tb.movefirst Response.write "<Table cellpading = 0 cellspacing = 0>" while not tb.EOF if Not Left(Ucase(tb("URL")),7) = "http://" then curl="http://"&tb("URL") else curl = tb("URL") end if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso mesmo... mas onde esta a definição da " & busca & " esse que é o problema... uma função que faça a união de todas as palavras... sem montar como frase... sacou?a ideia é essa mesmo!strSQL = "SELECT * From tabela WHERE campo = '" joao e maria "' ORDER By DESC"

Compartilhar este post


Link para o post
Compartilhar em outros sites

para encontrar o E que você quer faça assim

 

 

STRSQL = "SELECT * FROM nome_tabela WHERE nome_campo LIKE '"& joao&"' AND nome_campo LIKE '"&maria&"' ORDER BY nome_campo"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce pode fazer assim tambem para o OU que a busaca será muito mais eficaz

STRSQL = "SELECT * FROM nome_tabela WHERE nome_campo LIKE '"& joao&"' OR nome_campo LIKE '"&maria&"' ORDER BY nome_campo"

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas é o seguinte é um campo só... entende?como fazer para unir duas palavras em uma busca...é um campo é...Eu fiz unir como frase... mas preciso unir sem ser como frase...tipo:se o cara digitar "Joao e Maria" ele vai e mostra onde tem as 3, mesmo que nao seja nessa ordem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz o seguinte caraarmazena as palavras em um array

palavras=split(request("nome_campo")," ")

o codigo acima fará com que seja armazenado cada palavra separada por um espaço

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora que você já tem as palavras separadamente pode fazer aquela pesquisa que te disse usando um FOR basico em cima do ARRAY, qualquer duvido estamos ai

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.