sql >> Database teknologi >  >> RDS >> Mysql

Søgefunktion med græske tegn i MySQL

Hvis du er i stand til at ændre tegnsættet i din kolonne (eller tabel), så sæt det til utf8_general_ci (link til manual ):

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;

Med dette tegnsæt (som ikke skelner mellem store og små bogstaver, som angivet med _ci ), har accenttegn den samme vægt (den værdi, der bruges til sortering ), så de returnerer sandt, når de sammenlignes med hinanden (link til 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 hvis du ikke kan ændre databasekonfigurationen på denne måde, kan du skrive en funktion til at erstatte tegn med accent med deres ikke-accentuerede ækvivalenter (dvs. é -> e ) og skriv dette i et dedikeret søgefelt (en fuld- tekstsøgning felt anbefales). Udfør søgninger i dette felt, og returner feltet med accent til applikationen.




  1. Lagret procedure, der automatisk sletter rækker ældre end 7 dage i MYSQL

  2. Forskellen mellem LockModeType Jpa

  3. Importer SQL-dump til PostgreSQL-databasen

  4. Problemer med RODBC sqlSave