Mysql
 sql >> база данни >  >> RDS >> Mysql

Какво COLLATE трябва да настроя, за да използвам всички възможни езици?

  • Първи избор (MySQL 8.0):utf8mb4_0900_ai_ci
  • Втори избор (от 5.6):utf8mb4_unicode_520_ci
  • Трети избор (5.5+):utf8mb4_unicode_ci
  • Преди 5.5 не можете да се справите с целия китайски, нито с емоджи:utf8_unicode_ci

Цифрите се отнасят за стандартите на Unicode 9.0, 5.20 и (без номер) 4.0.

Никакво съпоставяне не е добро за сортиране на всички езици едновременно. Испански, немски, турски и т.н. имат странности, които са несъвместими. Съпоставянията по-горе са „най-добрите“ налични с общо предназначение.

utf8mb4 обработва всички знаци, които все още са посочени от Unicode (включително Cherokee, Klingon, Cuneiform, Byzantine и др.)

Ако португалският е в центъра на вниманието:

Вижте https://pt.stackoverflow.com/ и MySQL съпоставяне за португалски .

Проучете това за 8.0 или това за пред 8.0 за да видите кое съпоставяне utf8/utf8mb4 е най-близо до сортирането на португалския „правилно“. Може би utf8mb4_danish_ci или utf8mb4_de_pb_0900_ai_ci би било най-добре.

(Иначе използвайте изброените по-горе „избори“.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да избера MySQL база данни за използване с PDO в PHP?

  2. Задаване на стойности на колони като имена на колони в резултата от SQL заявката

  3. Как да създам MySQL пул за връзки, докато работя с NodeJS и Express?

  4. MySQL транзакция:SELECT + INSERT

  5. Как да получите разликата между последователни редове в MySQL?