Uma necessidade comum com dados em língua portuguesa são as buscas no bancos de dados insensível a caso e insensível a acentos.
No MySQL, até a versão 4.0, as consultas eram por padrão insensível ao caso (case-insensitive) e insensível ao acento (accent-insensitive). Isso mudou, porém, a partir da versão 4.1, que introduziu um suporte melhorado a comparações (collations) e definições de caracteres (charsets). Alguns desenvolvedores devem ter ficado surpresos com suas buscas que antes ignoravam acentos e maiúsculas e agora já exigiam que se colocasse.
A partir dessa versão, a sintaxe para uma consulta que ignora acentos e o caso seria a seguinte:
SELECT *
FROM `tab_municipios`
WHERE `NomeMunic` = _utf8 'SAO PAULO' COLLATE utf8_unicode_ci
Adaptado de Consultas case-insensitive no PostgreSQL e no MySQL


o problema deste método é que se fizer a consulta com o acento, não vai funcionar.
Por exemplo: SELECT *
FROM `tab_municipios`
WHERE `NomeMunic` = _utf8 ‘SÃO PAULO’ COLLATE utf8_unicode_ci
Fabrizio, a consulta é justamente para prever o uso ou não do acento. A consulta com acento irá funcionar.
Tanto a minha consulta quanto a sua retornam o registro com ou sem o acento.
Aqui não funcionou…
Willian, então você precisa ver com cuidado a sua instalação do MySQL.
aqui também não funcionou
Hélio, veja se a sua versão do MySQL é muito antiga.
mysql Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (x86_64) using readline 6.1
Hélio, pode ser a codificação da instalação. De repente você pode fazer a busca diretamente sem o artifício de usar utf8, se a codificação da instalação já for esta.