Jump to content


Photo

Sintaxe De Busca Utilizando Like [ Palavras Não Sequenciais ]


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

#1 kohler

kohler

    Novato no fórum

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

Posted 08/12/2006, 12:57

Boa tarde amigos. :)

Estou com uma dúvida.


Vou pegar como exemplo, um portal de automóveis, onde eu utilize um campo onde os visitantes façam a busca de um determinado veículo, utilizando por "trás dos panos" o LIKE do MySQL..

EX:

SELECT * FROM veiculos WHERE veiculo LIKE '%$veiculo%'

Porém, digamos que tenham veículos do mesmo modelo, mas com cadastros diferentes.

Ex:

1. Corsa 1.0 Wagon e Corsa Wagon 1.0

Notem que são o MESMO veículo (modelo) mas há 2 cadastros diferentes.

Se eu buscar por Corsa 1.0 ele vai me trazer o primeiro e o segundo não, pois o LIKE considera a sequência de strings ...

Então o que eu gostaria, quando eu digitasse corsa 1.0 aparecesse também o Corsa Wagon 1.0 .. mesmo que o 1.0 esteja como ultima string.

Entenderam ?

É que tem garagens (revendas) que cadastram o veículo de várias formas, tipo a sequência diferente...

Gol CL 1.8 .... Gol 1.8 CL .. daí quando vai buscar, não mostra todos porque o LIKE só considera a sequencia.

Desculpem mas acho que não estou conseguindo me expressar direito.. se alguém não entendeu, dá um toc que tento expliacar melhor :unsure:

Edição feita por: kohler, 08/12/2006, 13:01.


#2 Petry

Petry

    Veterano

  • Usuários
  • 1132 posts
  • Sexo:Masculino
  • Localidade:Caxias do Sul - RS
  • Interesses:- desenvolvimento WEB<br />- websemântica<br />- microformatos

Posted 08/12/2006, 13:52

Olha eu conselho voce fazer uma tabela de modelos onde voce cadastrasse somente uam vem o tipo de carro, ou ainda melhor, uam tabela de modelos de carro (Gol, Palio, ...) e outra de tipos (1.6 16V. 1.4 Weekend...)

desse modo voce não precisará escrever sempre o tipo do vaículo, escreveria uam vem, e nos próximos cadastros é só voce referenciar pela chave primária das tabelas, criando JOINS

Posted Image

- Desenvolvedor Python/ZOPE/Plone + ArchGenXML/Poseidon - Python + Django na Universidade de Caxias do Sul
- Desenvolvedor Python + Django na World News

Blog

#3 kohler

kohler

    Novato no fórum

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

Posted 08/12/2006, 15:53

Olha eu conselho voce fazer uma tabela de modelos onde voce cadastrasse somente uam vem o tipo de carro, ou ainda melhor, uam tabela de modelos de carro (Gol, Palio, ...) e outra de tipos (1.6 16V. 1.4 Weekend...)

desse modo voce não precisará escrever sempre o tipo do vaículo, escreveria uam vem, e nos próximos cadastros é só voce referenciar pela chave primária das tabelas, criando JOINS


Olá amigo.

Sua idéia é interessante, mas infelizmente no momento não podemos fazer isso por outros motivos..

Por isso precisava de uma solução no SELECT mesmo.

#4 Petry

Petry

    Veterano

  • Usuários
  • 1132 posts
  • Sexo:Masculino
  • Localidade:Caxias do Sul - RS
  • Interesses:- desenvolvimento WEB<br />- websemântica<br />- microformatos

Posted 08/12/2006, 16:07

naum sei em que linguagem voce está trabalhando, ams poderia fazer o seguinte:

- usar uma função que separasse cada item do parametro de busca e colocasse num array, tipo um explode do PHP;
- criar um laço onde cada iteração colcoasse em uam variavel a seguinte string; "AND vaiculo like '%sTUPLA[i]%' , onde o TUPLA seria um item do array;
- adicionar a variavem com os likes na quey string;

Posted Image

- Desenvolvedor Python/ZOPE/Plone + ArchGenXML/Poseidon - Python + Django na Universidade de Caxias do Sul
- Desenvolvedor Python + Django na World News

Blog




1 user(s) are reading this topic

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

IPB Skin By Virteq