Ir para conteúdo
Fórum Script Brasil
  • 0

Procurar Por Algo Em Um Campo


Alexandre Shammass

Pergunta

Tentei ajudar com o título do tópico, mas mesmo assim ficou ruim.. =/

bom, estou tentando localizar algumas pessoas no meu BD...

SELECT * FROM `contacts` WHERE `first_name`='Marco Ant%nio'

coloquei o % porque podem aparecer 'o', 'ó', 'ô' e no meu caso também '?' . mas quando uso o % não acha registro algum, porém, quando uso 'o', acha registros com 'o', 'ó' e 'ô', mas não encontra '?' . estou usando o caracter errado?!

valeu!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
coloquei o % porque podem aparecer 'o', 'ó', 'ô' e no meu caso também '?' . mas quando uso o % não acha registro algum, porém, quando uso 'o', acha registros com 'o', 'ó' e 'ô', mas não encontra '?' . estou usando o caracter errado?!
Este é um caso para uso da função SOUNDEX(str)

Fonte Manual MySQL 4.1 Versão em portugês:

Retorna uma string 'soundex' de str. Duas strings que parecidas fonéticamentea devem ter

strings 'soundex' iguais. Uma string soundex padrão possui 4 caracteres, mas a função SOUNDEX()

retorna uma string de tamanho arbitrário. Você posde usar SUBSTRING() no resultado

para obter uma string 'soundex' padrão. Todos os caracteres não alfanuméricos são ignorados na

string dada. Todas caracteres internacionais fora da faixa A-Z são tratados como vogais:

Sua pesquisa ficaria assim:

SELECT * FROM `contacts` WHERE Soundex(UCASE(`first_name`)) = Soundex('MARCO ANTONIO')

Francamente eu não gosto muito desta função pois o padrão fonético dela é o inglês.

Recentemente eu li uma revista sobre delphi que trazia um código com padrão fontético em português. Em virtude de ter sistemas em plantaformas diferentes que acessam o mesmo banco, resolvi transcrever o código para uma função em MySQL. Se eu lembrar (e espero que sim) posto a função na íntegra amanhã.

att

Denis Courcy

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...