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

MySQL съпоставяне за съхраняване на многоезични данни на неизвестен език

Трябва да използвате съпоставяне на Unicode. Можете да го зададете по подразбиране във вашата система или във всяко поле на вашите таблици. Има следните имена на съпоставяне в Unicode и това са техните разлики:

utf8_general_ci е много просто съпоставяне. Той просто - премахва всички ударения - след това преобразува в главни букви и използва кода на този вид "основна буква" резултат буква за сравнение.

utf8_unicode_ci използва таблицата с елементи за съпоставяне на Unicode по подразбиране.

Основните разлики са:

  1. utf8_unicode_ci поддържа така наречените разширения и лигатури, например:немската буква ß (U+00DF LETTER SHARP S) е сортирана близо до "ss" Буквата Œ (U+0152 LATIN CAPITAL LIGATURE OE) е сортирана близо до "OE".

utf8_general_ci не поддържа разширения/лигатури, сортира всички тези букви като единични знаци, а понякога и в грешен ред.

  1. utf8_unicode_ci е по принцип по-точен за всички скриптове. Например, на блок на кирилица:utf8_unicode_ci е добре за всички тези езици:руски, български, беларуски, македонски, сръбски и украински. Докато utf8_general_ci е добре само за руски и български подмножество от кирилица. Допълнителните букви, използвани в беларуски, македонски, сръбски и украински, не са сортирани добре.

+/- Недостатъкът на utf8_unicode_ci е, че е малко по-бавен от utf8_general_ci.

Така че в зависимост от това, знаете ли или не, кои конкретни езици/знаци ще използвате, препоръчвам ви да използвате utf8_unicode_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. PHP $stmt->num_rows не работи с подготвени оператори

  2. грешка:Скриптът за настройка е излязъл с грешка:командата 'gcc' неуспешна със състояние на изход 1

  3. Codeigniter db->update() VS MySQL родния UPDATE Засегнати редове:0

  4. Премахнете крайните нули в десетичната стойност с промяна на дължината

  5. mysql ...in where клаузата е двусмислена