sql >> Database >  >> RDS >> Mysql

Zoekfunctie met Griekse karakters in MySQL

Als u de tekenset van uw kolom (of tabel) kunt wijzigen, stelt u deze in op utf8_general_ci (link naar handleiding ):

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;

Met deze tekenset (die niet hoofdlettergevoelig is, zoals aangegeven door _ci ), hebben tekens met accenten hetzelfde gewicht (de waarde die wordt gebruikt voor verzameling ), dus ze retourneren true wanneer ze met elkaar worden vergeleken (link naar handleiding ):

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)

Als alternatief, of als u de databaseconfiguratie niet op deze manier kunt wijzigen, kunt u een functie schrijven om tekens met accenten te vervangen door hun niet-geaccentueerde equivalenten (d.w.z. é -> e ) en schrijf dit in een speciaal zoekveld (een full- tekst zoeken veld wordt aanbevolen). Voer zoekopdrachten uit op dit veld en stuur het veld met accenten terug naar de toepassing.




  1. Als we een primaire sleutelwaarde wijzigen, waarom hoeven we dan geen afhankelijke kolomwaarde te wijzigen?

  2. MYSQL voegt geen informatie toe aan mijn database

  3. UPDATE met ORDER BY en LIMIT werken niet in MYSQL

  4. Hoe kan ik dynamische grafieken genereren met MySQL-gegevens?