sql >> Database >  >> RDS >> Mysql

MySQL-sortering om meertalige gegevens van onbekende taal op te slaan

U moet een Unicode-sortering gebruiken. U kunt het standaard instellen op uw systeem of op elk veld van uw tabellen. Er zijn de volgende Unicode-sorteernamen, en dit zijn hun verschillen:

utf8_general_ci is een zeer eenvoudige sortering. Het verwijdert gewoon alle accenten en wordt vervolgens omgezet in hoofdletters en gebruikt de code van dit soort "basisletter"-resultaatletter om te vergelijken.

utf8_unicode_ci gebruikt de standaard Unicode-sorteerelementtabel.

De belangrijkste verschillen zijn:

  1. utf8_unicode_ci ondersteunt zogenaamde uitbreidingen en ligaturen, bijvoorbeeld:Duitse letter ß (U+00DF LETTER SHARP S) is gesorteerd in de buurt van "ss" Letter Œ (U+0152 LATIN CAPITAL LIGATURE OE) is gesorteerd in de buurt van "OE".

utf8_general_ci ondersteunt geen uitbreidingen/ligaturen, het sorteert al deze letters als afzonderlijke tekens en soms in de verkeerde volgorde.

  1. utf8_unicode_ci is in het algemeen nauwkeuriger voor alle scripts. Bijvoorbeeld, op Cyrillisch blok:utf8_unicode_ci is prima voor al deze talen:Russisch, Bulgaars, Wit-Russisch, Macedonisch, Servisch en Oekraïens. Terwijl utf8_general_ci alleen goed is voor de Russische en Bulgaarse subset van Cyrillisch. Extra letters die in het Wit-Russisch, Macedonisch, Servisch en Oekraïens worden gebruikt, worden niet goed gesorteerd.

+/- Het nadeel van utf8_unicode_ci is dat het iets langzamer is dan utf8_general_ci.

Dus afhankelijk van, of je het weet of niet, welke specifieke talen/tekens je gaat gebruiken, raad ik je aan utf8_unicode_ci te gebruiken, dat een ruimere dekking heeft.



  1. Hoe flutter te verbinden met localhost mysql-database

  2. Twee tabellen samenvoegen met een door komma's gescheiden lijst in het samenvoegveld

  3. 6 manieren om dubbele rijen in Oracle te selecteren

  4. Hoe moet ik een tabelnaam doorgeven aan een opgeslagen proces?