Om du kan ändra teckenuppsättningen i din kolumn (eller tabell) ställ sedan in den till utf8_general_ci
(länk till manual
):
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;
Med denna teckenuppsättning (som är skiftlägesokänslig, som betecknas med _ci
), har accenttecken samma vikt (värdet som används för sammanställning
), så de returnerar sant när de jämförs med varandra (länk till 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 om du inte kan ändra databaskonfigurationen på detta sätt, kan du skriva en funktion för att ersätta tecken med accent med deras motsvarigheter utan accent (dvs. é
-> e
) och skriv detta i ett dedikerat sökfält (en full- textsökning
fältet rekommenderas). Utför sökningar i det här fältet och returnera accentfältet till applikationen.