
Buscar No Estilo Google...
Started By Ernanni, 31/10/2008, 09:59
8 replies to this topic
#1
Posted 31/10/2008, 09:59
Suponha que o em um banco de dados MySQL temos o campo "texto", com os seguintes registros:
"Dúvida Busca PHP"
"Dúvida PHP"
"Dúvida PHP Busca"
Se buscarmos por "Dúvida Busca" utilizando LIKE %, ele retorna apenas o 1o. registro.
Como fazer para retornar o 1o. e o 3o. registros (por possuir ambas palavras), como o Google?
Obrigado.
"Dúvida Busca PHP"
"Dúvida PHP"
"Dúvida PHP Busca"
Se buscarmos por "Dúvida Busca" utilizando LIKE %, ele retorna apenas o 1o. registro.
Como fazer para retornar o 1o. e o 3o. registros (por possuir ambas palavras), como o Google?
Obrigado.
#2
Posted 31/10/2008, 10:09
Nõ entendi mt bem... o LIKE serve para pegar apenas um determinado número de registros, de acordo com a ordem de sua busca...
se vc quer que apareça os 3 primeiros registros, vc coloca "LIKE 3" no final do seu SELECT...
Mas pelo que percebi, quer que apareça todos os resultados da sua busca, então não há razão para usar o LIKE.
Desculpe se não era esta a sua dúvida.
se vc quer que apareça os 3 primeiros registros, vc coloca "LIKE 3" no final do seu SELECT...
Mas pelo que percebi, quer que apareça todos os resultados da sua busca, então não há razão para usar o LIKE.
Desculpe se não era esta a sua dúvida.
O mundo é grande, O mundo é grande e cabe,
nesta janela sobre o mar, o mar é grande e cabe,
Na cama e no colchão de amar, o amor é grande e cabe,
no breve espaço de beijar.
nesta janela sobre o mar, o mar é grande e cabe,
Na cama e no colchão de amar, o amor é grande e cabe,
no breve espaço de beijar.
#3
Posted 31/10/2008, 10:24
Não, vc está confundindo LIKE com LIMIT.
O uso seria assim: "SELECT texto FROM tabela WHERE texto LIKE '%Dúvida Busca%'"
O uso seria assim: "SELECT texto FROM tabela WHERE texto LIKE '%Dúvida Busca%'"
Edição feita por: Ernanni, 31/10/2008, 10:25.
#4
Posted 31/10/2008, 11:06
Uh!
Estava mesmo
mas LIKE não restringe nº de resultados, man... .-.
Estava mesmo

mas LIKE não restringe nº de resultados, man... .-.
O mundo é grande, O mundo é grande e cabe,
nesta janela sobre o mar, o mar é grande e cabe,
Na cama e no colchão de amar, o amor é grande e cabe,
no breve espaço de beijar.
nesta janela sobre o mar, o mar é grande e cabe,
Na cama e no colchão de amar, o amor é grande e cabe,
no breve espaço de beijar.
#5
Posted 31/10/2008, 11:09
Você pode substituir cada espaço vazio por um sinal de porcentagem, o que determinaria um "coringa" para a sua pesquisa.
[]'s Até mais
[]'s Até mais
#6
Posted 31/10/2008, 12:18
Acho que pra resolver 100% você vai ter que dar um explode enssa string pelo caractere de espaço e adicionar um LIKE para cada ocorrência do explode, ficando assim:
Dessa maneira a query encontra o registro mesmo que você inverta a ordem das palavras na pesquisa
SELECT texto FROM tabela WHERE texto LIKE '%Dúvida%' AND texto LIKE '%Busca%'
Dessa maneira a query encontra o registro mesmo que você inverta a ordem das palavras na pesquisa

Edição feita por: boirock, 31/10/2008, 12:18.
#7
Posted 31/10/2008, 13:59
Hummm... Interessante.
Agora se essa busca for em mais de um campo com OR, tô lascado, né? rs
Valeu!
Agora se essa busca for em mais de um campo com OR, tô lascado, né? rs
Valeu!
#8
Posted 31/10/2008, 14:19
Que nada cara 
Pense na sua query como uma expressão matemática! Isole os conjuntos entre parenteses...

Pense na sua query como uma expressão matemática! Isole os conjuntos entre parenteses...
WHERE A = 1 OR B = 2 OR (C = 3 AND D = 4)Tem coisas que você resolve mais rapidamente no teste de mesa do que direto no PC

#9
Posted 03/11/2008, 11:11
Vc tem razão!
Tks, cara. Vou testar!
Tks, cara. Vou testar!
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)