Wenn Sie den Zeichensatz Ihrer Spalte (oder Tabelle) ändern können, setzen Sie ihn auf utf8_general_ci
(Link zum Handbuch
):
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;
Mit diesem Zeichensatz (bei dem die Groß-/Kleinschreibung nicht beachtet wird, wie durch _ci
angegeben ), Zeichen mit Akzent haben dasselbe Gewicht (der Wert, der für verwendet wird). Kollation
), also geben sie wahr zurück, wenn sie miteinander verglichen werden (Link zum Handbuch
):
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)
Alternativ, oder wenn Sie die Datenbankkonfiguration nicht auf diese Weise ändern können, könnten Sie eine Funktion schreiben, um Zeichen mit Akzent durch ihre Entsprechungen ohne Akzent zu ersetzen (z. B. é
-> e
) und schreiben Sie dies in ein spezielles Suchfeld (ein full- Textsuche
Feld wird empfohlen). Führen Sie Suchen in diesem Feld durch und geben Sie das akzentuierte Feld an die Anwendung zurück.