Select - Como encontrar palavras acentuadas?
Olá pessoal da lista.
já vi muitas dúvidas sobre acentuação, e pessoas falando pra substituir os acentos das palavras pela respectiva palavra sem acento.
ex: Se digitarem ´Fórum´ substitui e fica ´Forum´.
... e se for o inverso?
Se pesquisam ´Forum´ ? Como vou encontrar a palavra ´Fórum´ :?:
Eu utilizo o Mysql em sites que faço e ele resolve isso pra mim sem problemas. Mas estou querendo deixar todos meus programas e futuros sites em Firebird. E acentuação é um dos itens principais numa pesquisa.
Alguem pode me ajudar quanto a isso?
Obrigado,
Carlos
já vi muitas dúvidas sobre acentuação, e pessoas falando pra substituir os acentos das palavras pela respectiva palavra sem acento.
ex: Se digitarem ´Fórum´ substitui e fica ´Forum´.
... e se for o inverso?
Se pesquisam ´Forum´ ? Como vou encontrar a palavra ´Fórum´ :?:
Eu utilizo o Mysql em sites que faço e ele resolve isso pra mim sem problemas. Mas estou querendo deixar todos meus programas e futuros sites em Firebird. E acentuação é um dos itens principais numa pesquisa.
Alguem pode me ajudar quanto a isso?
Obrigado,
Carlos
Carlos_simioni
Curtidas 0
Respostas
Afarias
08/12/2003
|já vi muitas dúvidas sobre acentuação, e pessoas falando pra substituir
|os acentos das palavras pela respectiva palavra sem acento.
o IB (ou FB) não possui nenhum problema com acentos. Vc pode (e deve) usá-los sempre (acho q todos no Brasil por exemplo usam) -- basta selecionar um CHARACTER SET apropriado, por ex:: ISO8859_1
T+
|os acentos das palavras pela respectiva palavra sem acento.
o IB (ou FB) não possui nenhum problema com acentos. Vc pode (e deve) usá-los sempre (acho q todos no Brasil por exemplo usam) -- basta selecionar um CHARACTER SET apropriado, por ex:: ISO8859_1
T+
GOSTEI 0
Carlos_simioni
08/12/2003
Olá A. Farias,
refiz meu BD e coloquei o Character Set como ISO8859_1. ficou ok. palavras acentuadas estão sendo incluidas normalmente. :D
agora, tem outra duvida que eu gostaria de saber se tem como fazer:
se eu tenho a palavra ´fórum´ cadastrada no meu BD, mas meu cliente digita ´forum´ (sem acento) na pesquisa. o firebird não retorna nenhum resultado. o que posso fazer :?:
Obrigado,
Carlos
refiz meu BD e coloquei o Character Set como ISO8859_1. ficou ok. palavras acentuadas estão sendo incluidas normalmente. :D
agora, tem outra duvida que eu gostaria de saber se tem como fazer:
se eu tenho a palavra ´fórum´ cadastrada no meu BD, mas meu cliente digita ´forum´ (sem acento) na pesquisa. o firebird não retorna nenhum resultado. o que posso fazer :?:
Obrigado,
Carlos
GOSTEI 0
Afarias
08/12/2003
uma opção é criar uma UDF (se é q não existe uma por ai) --- com uma função que pegaria qualquer palavra do banco e substituiria os caracteres com acentos por caracteres sem::
dai vc poderia usar como::
select * from sua_tabela
where sua_funcao(seu_campo) = ´forum´
e onde tivesse ´fórum´ sua_funcao retornaria ´forum´
outra forma, seria fazer esta função no cliente, e ter dois campos:: um com valor real e outro com o valor sem ou acentos, cedilhas, etc...
quando o usuário cadastra-se algo, vc gravaria os valores com e sem acentos... e faria a busca sempre no campo sem os acentos.
claro q se na busca (para ambos os casos acima) o usuário colocar a palavra com acento, vc tira o ancento antes de realizar a busca.
T+
dai vc poderia usar como::
select * from sua_tabela
where sua_funcao(seu_campo) = ´forum´
e onde tivesse ´fórum´ sua_funcao retornaria ´forum´
outra forma, seria fazer esta função no cliente, e ter dois campos:: um com valor real e outro com o valor sem ou acentos, cedilhas, etc...
quando o usuário cadastra-se algo, vc gravaria os valores com e sem acentos... e faria a busca sempre no campo sem os acentos.
claro q se na busca (para ambos os casos acima) o usuário colocar a palavra com acento, vc tira o ancento antes de realizar a busca.
T+
GOSTEI 0
Caninha51
08/12/2003
Sei que o tópico é antigo mas serve pros outros...
Vc poderia fazer uma função no delphi para substituir os caracateres acentuados, cedinhas.... pelo caractere coringa ´_´ (underline).
Ai vc faria um like na consulta sql...
Ficaria assim...
SELECT * FROM TABELA WHERE NOME LIKE ´¬JO_O¬´
Assim ele listaria todos JOÃO, JOAO, JOÂO... inclusive JOSO...
Como disse, ele é um caractere coringa! :)
Falow!!!
Vc poderia fazer uma função no delphi para substituir os caracateres acentuados, cedinhas.... pelo caractere coringa ´_´ (underline).
Ai vc faria um like na consulta sql...
Ficaria assim...
SELECT * FROM TABELA WHERE NOME LIKE ´¬JO_O¬´
Assim ele listaria todos JOÃO, JOAO, JOÂO... inclusive JOSO...
Como disse, ele é um caractere coringa! :)
Falow!!!
GOSTEI 0
Afarias
08/12/2003
A dica é boa caninha51, mas deve ser usada com cautela. Deve se estar a tento q buscas como esta não podem usar índice.
T+
T+
GOSTEI 0