sql >> Base de Datos >  >> RDS >> Mysql

Función de búsqueda con caracteres griegos en MySQL

Si puede cambiar el conjunto de caracteres de su columna (o tabla), configúrelo en utf8_general_ci (enlace al manual ):

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;

Con este conjunto de caracteres (que no distingue entre mayúsculas y minúsculas, como indica _ci ), los caracteres acentuados tienen el mismo peso (el valor utilizado para colación ), por lo que devuelven verdadero cuando se comparan entre sí (enlace al 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, o si no puede modificar la configuración de la base de datos de esta manera, puede escribir una función para reemplazar los caracteres acentuados con sus equivalentes no acentuados (es decir, é -> e ) y escríbalo en un campo de búsqueda dedicado (un full- búsqueda de texto se recomienda el campo). Realice búsquedas en este campo y devuelva el campo acentuado a la aplicación.