Jump to content


Photo

Busca No Mysql...


  • Faça o login para participar
6 replies to this topic

#1 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 30/04/2008, 17:58

Buscas no MYSQL, pensei que era mais simples xD

Se você faz a busca com

"SELECT * FROM jogo WHERE Nome LIKE '%".$palavra."%'"

Dá OK.

Mas se faz:

"SELECT * FROM jogo WHERE Nome LIKE '%".$palavra."%".$palavra1."%'"
Acho que é assim mesmo '-'

Ele dá certo se você buscar duas palavras que tenham na string, exemplo:

Buscar: need speed

Na string Need for speed

Dá certo, mas se buscar...

speed need

Não dá certo, só por que a primeira palavra da string original fica depois da primeira palavra buscada?
Tem solução isso? =)

Obrigado desde já!

Edição feita por: lwirkk, 30/04/2008, 18:00.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#2 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 02/05/2008, 05:15

Realmente ele só retornará com as palavras nos lugares certos xD
Tipo, acho que é coisa do LIKE, pq significa, "como", então, ele pega algo com qualquer coisa entre suas palavras, mas não o contrário. Eu resolveria realmente com uma segunda consulta caso a primeira falhasse, invertendo os parâmetros, utilizando IFs e talz, sei lá, é como eu faria.

/*DarkSign*/
Não sabe por onde começar? Que tal pelas Regras ?

#3 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 02/05/2008, 08:44

Você pode usar uma busca full-text, caso queira fazer uma busca com mais de palavra.
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#4 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 07/05/2008, 14:46

Mas no caso minhas tabelas são INNODB.

Teria outra forma além do "match" e dos IF's?

E obrigado desde já! =)
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#5 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 07/05/2008, 16:29

Criar um "AND no LIKE" para cada uma das palavras? :ponder:
É meio POG...

#6 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 07/05/2008, 20:41

Eu poderia fazer por exemplo se fosse duas palavras, ele buscar tanto uma antes que a outra tanto depois (trocar ordem) mas se fosse 3? ai piff seria mais complicated mas não impossível, mas mesmo assim POG também xD

Mas acho que o jeito menos POG e mais fácil seria pegar essa tabela e colocar ela como MYISAM mesmo e usar MATCH =)

Mas vlwww pessoal por todas as dicas que me deram =)

Obrigado!!! =)
Abraços!

Edição feita por: lwirkk, 07/05/2008, 20:43.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#7 ComuniCAD

ComuniCAD

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 21/08/2008, 17:16

Tente

"SELECT * FROM jogo WHERE Nome LIKE '%".$palavra."%"' OR Nome LIKE '%".$palavra1."%'"


Buscas no MYSQL, pensei que era mais simples xD

Se você faz a busca com

"SELECT * FROM jogo WHERE Nome LIKE '%".$palavra."%'"

Dá OK.

Mas se faz:

"SELECT * FROM jogo WHERE Nome LIKE '%".$palavra."%".$palavra1."%'"
Acho que é assim mesmo '-'

Ele dá certo se você buscar duas palavras que tenham na string, exemplo:

Buscar: need speed

Na string Need for speed

Dá certo, mas se buscar...

speed need

Não dá certo, só por que a primeira palavra da string original fica depois da primeira palavra buscada?
Tem solução isso? =)

Obrigado desde já!






1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq