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.