Ir para conteúdo

POWERED BY:

Arquivado

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

aletres

SELECT com strings parecidas

Recommended Posts

Como consultar o banco de dados fazendo um WHERE nome='$nome' mas procurando todos os nomes parecidos.Campo: JoãoRetorna: Joao, Joana, Jao, etc...Sei que tem uma função que poê uma porcentagem de diferença da string. Alguém sabe?Obrigado.Alexandre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tu fala é fazer uma busca ? se for, podes usar o LIKE, exemplo:

 

se sua tabela tem:

 

Naiara

Joaquim

Nara - Essa palavra será encontrada.

 

basta fazer assim:

 

PHP
<?php

$conexao = mysql_connect("localhost", "usuario", "senha");

$db = mysql_select_db("NOME_DB");

$selecionar = "SELECT * FROM suatabela WHERE campodasuatabela LIKE '___n%'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

O LIKE eu conheço. mas não é isso.Você informa um porcentagem, exemplo: 75%. Ele busca os campos que são 75% parecido com a informação digitada.Obrigado novamente.Alexandre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa,

 

É com o LIKE mesmo que você fará isso. . .você já usou todos os recursos do operador?

Estude isso: http://dev.mysql.com/doc/refman/5.0/en/str...-functions.html

Abração! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu cara, mas não achei o que procuro.

 

Como por exemplo, no Google, a pessoa digita eroneamente: palavrha, o Google diz: Você quiz procurar por palavra?

 

Como ele procura as strings parecidas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SOUNDEX QUERY...é a danada da consulta donética, complicada pra fazer. Além do que, o google usa pesquisa nomística e gusrada tudo que é pesquisado...com um tempo ele terá todos as palavras, de todos os idiomas e poderá corrigir erros de digitação facilmente.

 

No seu caso, apresente o seu usuário uma busca que você faz com o sql que te passamos, através da substring da string fornecida.

O que acha?

 

palavra:

 

SELECT * FROM table WHERE campo LIKE SUBSTRING('$var',1,3);

 

Bom, acho que seria uma solução.

 

Abração!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como consultar o banco de dados fazendo um WHERE nome='$nome' mas procurando todos os nomes parecidos.Campo: JoãoRetorna: Joao, Joana, Jao, etc...Sei que tem uma função que poê uma porcentagem de diferença da string. Alguém sabe?Obrigado.Alexandre.

$query = "select * from tabeladesejada where nome like'".$nome."%' ";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa consulta retornará tudo que é composto de João_____, ou seja:

[*]João Roberto

[*]João Pedro;

[*]João Silas;

[*]João da Silva;

[*]João João...

tipo, vamos partir para implementação?

 

Veja de quantas letras sua string é composta ou mesmo, com um array de possíveis vogais acentuadas, veja a posição da vogal acentuada dentro da string com a função strpos(), Após isso, use substr(), como já abordei ou mesmo, str_replace() na posição da string que contém o acento e busque os parecidos com LIKE, mas deve-se usar o substr(), senão, retornará como a consulta acima.

 

Abração!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.