Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Suchfunktion mit griechischen Schriftzeichen in MySQL

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.