Hvis du er i stand til at ændre tegnsættet i din kolonne (eller tabel), så sæt det til utf8_general_ci
(link til manual
):
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;
Med dette tegnsæt (som ikke skelner mellem store og små bogstaver, som angivet med _ci
), har accenttegn den samme vægt (den værdi, der bruges til sortering
), så de returnerer sandt, når de sammenlignes med hinanden (link til 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)
Alternativt, eller hvis du ikke kan ændre databasekonfigurationen på denne måde, kan du skrive en funktion til at erstatte tegn med accent med deres ikke-accentuerede ækvivalenter (dvs. é
-> e
) og skriv dette i et dedikeret søgefelt (en fuld- tekstsøgning
felt anbefales). Udfør søgninger i dette felt, og returner feltet med accent til applikationen.