Tenho, em uma base de dados Microsoft SQL Server 2000, vários registros com dados com caracteres em formato de entidade HTML, por exemplo: á vira á, õ vira õ, ç vira ç e assim pro diante.
O usuário busca por esses dados através de um formulário, nesse formulário ele não digita os dados nesse formato, então, se ele fosse buscar por joão, por exemplo, ele não encontraria o joão que está cadastrado na base.
Pensei em converter as strings que vierem na busca para algo como:
coluna LIKE '%joão%' OR coluna LIKE '%joão', usando html_entities ou htmlspecialchars mas, aos poucos, minha query vai ficando enorme.
A busca que faço é de fato mais complexa que o exemplo onde só tenho uma coluna a ser comparada, sem contar que teria de fazer isso para cada caracter, por exemplo, na palavra coração eu teria de procurar por 'coração' ou 'coração' ou 'coração' ou 'coração', pra não falar em palavras com trema, acento, cedilha e/ou til (lingüiça, cinqüenta, ...) e afins.
O que gostaria de saber é se é possível passar alguma opção para que o próprio banco de dados faça, internamente, essas comparações por mim (como ele faria se eu o dissesse para fazer uma comparação insensitiva).
Pergunta
Guest - Marcio Ribeiro -
A situação é a seguinte:
Tenho, em uma base de dados Microsoft SQL Server 2000, vários registros com dados com caracteres em formato de entidade HTML, por exemplo: á vira á, õ vira õ, ç vira ç e assim pro diante.
O usuário busca por esses dados através de um formulário, nesse formulário ele não digita os dados nesse formato, então, se ele fosse buscar por joão, por exemplo, ele não encontraria o joão que está cadastrado na base.
Pensei em converter as strings que vierem na busca para algo como:
coluna LIKE '%joão%' OR coluna LIKE '%joão', usando html_entities ou htmlspecialchars mas, aos poucos, minha query vai ficando enorme.
A busca que faço é de fato mais complexa que o exemplo onde só tenho uma coluna a ser comparada, sem contar que teria de fazer isso para cada caracter, por exemplo, na palavra coração eu teria de procurar por 'coração' ou 'coração' ou 'coração' ou 'coração', pra não falar em palavras com trema, acento, cedilha e/ou til (lingüiça, cinqüenta, ...) e afins.
O que gostaria de saber é se é possível passar alguma opção para que o próprio banco de dados faça, internamente, essas comparações por mim (como ele faria se eu o dissesse para fazer uma comparação insensitiva).
Sistema Operacional: Windows 2000
Banco de Dados: Microsoft SQL Server 2000
Versão do PHP: 4.3.4
Aguardo respostas (mmr@b1n.org), obrigado.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.