sql >> Databasteknik >  >> RDS >> Mysql

Sökfunktion med grekiska tecken i MySQL

Om du kan ändra teckenuppsättningen i din kolumn (eller tabell) ställ sedan in den till utf8_general_ci (länk till manual ):

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;

Med denna teckenuppsättning (som är skiftlägesokänslig, som betecknas med _ci ), har accenttecken samma vikt (värdet som används för sammanställning ), så de returnerar sant när de jämförs med varandra (länk till 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 om du inte kan ändra databaskonfigurationen på detta sätt, kan du skriva en funktion för att ersätta tecken med accent med deras motsvarigheter utan accent (dvs. é -> e ) och skriv detta i ett dedikerat sökfält (en full- textsökning fältet rekommenderas). Utför sökningar i det här fältet och returnera accentfältet till applikationen.




  1. Hur man får året från en Datetime-kolumn i MySQL

  2. Felsökning av Microsoft SQL Server Error 18456

  3. Hur man beräknar procent i PostgreSQL

  4. Hur man filtrerar in ett till många förhållande med android room db