Trabalho com linguagem com caracteres especiais (exemplo: e -> é). Eu tenho uma consulta com um LIKE
, mas quando pesquiso uma palavra com um caractere especial e minha consulta não possui o caractere especial, não obtenho os resultados esperados:
select * from a where name like '%e%'
O acima não retorna resultados quando o banco de dados contém "dés". Existe uma maneira de fazer com que essa consulta retorne os resultados desejados.
Se o agrupamento de seu banco de dados estiver definido como insensível a acentos, isso deve funcionar (para a maioria dos caracteres acentuados).
Por exemplo, no agrupamento Latin1_General_CI_AS, o CS significa maiúsculas e minúsculas, sensível a acentos. Você gostaria que o agrupamento fosse Latin1_General_CI_AI , o que significa que não diferencia maiúsculas de minúsculas, não diferencia maiúsculas de minúsculas
Esteja avisado, porém, que nem todos os caracteres "acentuados" são criados igualmente, mas para pesquisas em espanhol e francês, descobri que as coisas funcionam conforme o esperado.
Você pode precisar tentar algo aventureiro, como codificar nas sequências de escape.
Eu finalmente substituo o char especial que conheço por um %