Pokud jste schopni změnit znakovou sadu vašeho sloupce (nebo tabulky), nastavte ji na utf8_general_ci
(odkaz na příručku
):
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;
S touto znakovou sadou (nerozlišují se malá a velká písmena, jak je označeno _ci
), znaky s diakritikou mají stejnou váhu (hodnota použitá pro řazení
), takže při vzájemném porovnání vrátí hodnotu true (odkaz na příručku
):
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)
Alternativně, nebo pokud nemůžete změnit konfiguraci databáze tímto způsobem, můžete napsat funkci, která nahradí znaky s diakritikou jejich ekvivalenty bez diakritiky (tj. é
-> e
) a zapište to do vyhrazeného vyhledávacího pole (full- textové vyhledávání
pole je doporučeno). Proveďte vyhledávání v tomto poli a vraťte pole s diakritikou do aplikace.