Mysql
 sql >> Base de données >  >> RDS >> Mysql

Fonction de recherche avec des caractères grecs dans MySQL

Si vous pouvez modifier le jeu de caractères de votre colonne (ou table), définissez-le sur utf8_general_ci (lien vers le manuel ):

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;

Avec ce jeu de caractères (insensible à la casse, comme indiqué par _ci ), les caractères accentués ont le même poids (la valeur utilisée pour classement ), ils renvoient donc vrai lorsqu'ils sont comparés (lien vers le manuel ):

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)

Alternativement, ou si vous ne pouvez pas modifier la configuration de la base de données de cette manière, vous pouvez écrire une fonction pour remplacer les caractères accentués par leurs équivalents non accentués (c'est-à-dire é -> e ) et écrivez ceci dans un champ de recherche dédié (un full- recherche de texte champ est recommandé). Effectuez des recherches sur ce champ et renvoyez le champ accentué à l'application.