Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zidentyfikować język w kolumnie utf-8 w MySQL?

Cóż, zacznijmy od tabeli, którą umieściłem tutaj . Mówi na przykład, że E381yy to kodowanie utf8 dla Hiragana, a E383yy to Katakana (japoński). (Kanji to inna sprawa.)

Aby sprawdzić, czy kolumna utf8 zawiera Katakanę, wykonaj coś takiego

WHERE HEX(col) REGEXP '^(..)*E383'

Cyrylica może być

WHERE HEX(col) REGEXP '^(..)*D[0-4]'

Chiński jest trochę skomplikowany, ale może zazwyczaj praca dla języka chińskiego (i Kanji?):

WHERE HEX(col) REGEXP '^(..)*E[4-9A]'

(Zamierzam zmienić Twój tytuł, aby uniknąć słowa kluczowego „zestaw znaków”).

Europa Zachodnia (w tym między innymi francuski) C[23] , turecki (w przybliżeniu i kilka innych) (C4|C59) , grecki:C[EF] , hebrajski:D[67] , indyjski itp.:E0 , arabski/farsi/perski/urdu:D[89AB] . (Zawsze prefiks z ^(..)* .

Możesz zauważyć, że niekoniecznie są one bardzo szczegółowe. Dzieje się tak z powodu nakładania się. Brytyjski angielski i amerykański angielski nie można odróżnić inaczej niż przez pisownię kilku słów. Kilka liter z akcentem jest wspólnych w Europie na różne sposoby. Indie mają wiele różnych zestawów znaków:dewanagari, bengalski, gurmukhi, gudżarati itd.; są one prawdopodobnie rozróżnialne, ale wymagałoby to dalszych badań. Myślę, że arabski/farsi/perski/urdu mają jeden zestaw znaków.

Jeszcze więcej:

| SAMARITAN                     | E0A080        | E0A0BE        |
| DEVANAGARI                    | E0A480        | E0A5BF        |
| BENGALI                       | E0A681        | E0A7BB        |
| GURMUKHI                      | E0A881        | E0A9B5        |
| GUJARATI                      | E0AA81        | E0ABB1        |
| ORIYA                         | E0AC81        | E0ADB1        |
| TAMIL                         | E0AE82        | E0AFBA        |
| TELUGU                        | E0B081        | E0B1BF        |
| KANNADA                       | E0B282        | E0B3B2        |
| MALAYALAM                     | E0B482        | E0B5BF        |
| SINHALA                       | E0B682        | E0B7B4        |
| THAI                          | E0B881        | E0B99B        |
| LAO                           | E0BA81        | E0BB9D        |
| TIBETAN                       | E0BC80        | E0BF94        |

Tak więc, dla DEVANAGARI, '^(..)*E0A[45]'




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Efektywne przypisanie percentyla/rangi w MYSQL

  2. Zapytanie SQL, aby uzyskać sumę częściową niektórych wierszy

  3. Instalacja i ładowanie bazy danych MySQL w skrypcie Inno Setup

  4. MySQL CAST jako DATE

  5. MySQL Wybierz wiersze kluczem lub wróć do wyboru domyślnego klucza