Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Função de pesquisa com caracteres gregos no MySQL


Se você puder alterar o conjunto de caracteres de sua coluna (ou tabela), defina-o como utf8_general_ci (link para o manual ):
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;

Com este conjunto de caracteres (que não diferencia maiúsculas de minúsculas, conforme indicado por _ci ), os caracteres acentuados têm o mesmo peso (o valor usado para agrupamento ), então eles retornam true quando comparados entre si (link para o manual ):
mysql> SET NAMES 'utf8' COLLATE 'utf8_general_ci';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT 'a' = 'A', 'a' = 'À', 'a' = 'á';
+-----------+-----------+-----------+
| 'a' = 'A' | 'a' = 'À' | 'a' = 'á' |
+-----------+-----------+-----------+
|         1 |         1 |         1 |
+-----------+-----------+-----------+
1 row in set (0.06 sec)

Alternativamente, ou se você não puder alterar a configuração do banco de dados dessa maneira, você pode escrever uma função para substituir os caracteres acentuados por seus equivalentes não acentuados (ou seja, é -> e ) e escreva isso em um campo de pesquisa dedicado (um full- pesquisa de texto campo é recomendado). Realize pesquisas neste campo e retorne o campo acentuado para o aplicativo.