sql >> データベース >  >> RDS >> Mysql

MySQLのutf-8列で言語を識別する方法

    さて、私がここに入れたテーブルから始めましょう。 。たとえば、E381yyはひらがなのutf8エンコーディングであり、E383yyはカタカナです。 (漢字は別の問題です。)

    utf8列にカタカナが含まれているかどうかを確認するには、次のようにします

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

    キリル文字かもしれません

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

    中国語は少し注意が必要ですが、通常 中国人(そして漢字?)のために働く:

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

    (キーワード「文字セット」を避けるためにタイトルを変更します。)

    西ヨーロッパ(フランス語を含むがこれに限定されない)C[23] 、トルコ語(約、その他)(C4|C59) 、ギリシャ語:C[EF] 、ヘブライ語:D[67] 、インドなど:E0 、アラビア語/ペルシア語/ペルシア語/ウルドゥー語:D[89AB] 。 (常に^(..)*のプレフィックスを付けます 。

    これらは必ずしも非常に具体的ではないことに気付くかもしれません。これは重複が原因です。イギリス英語とアメリカ英語は、いくつかの単語のスペル以外では区別できません。いくつかのアクセント付き文字は、ヨーロッパではさまざまな方法で共有されています。インドには、デーバナーガリー語、ベンガル語、グルムキ語、グジャラート語など、さまざまな文字セットがあります。これらはおそらく区別できますが、さらに調査が必要です。アラビア語/ペルシア語/ペルシア語/ウルドゥー語は1つの文字セットを共有していると思います。

    もう少し:

    | 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        |
    

    したがって、デーバナーガリーの場合、'^(..)*E0A[45]'




    1. Windows環境でJava用のWebホストを提案する

    2. MYSQLのテーブルにランダムな数値を挿入する

    3. 2つの日付間のSQL時間差により、hh:mm:ssになります

    4. MySQL-FLOAT(10,6)を使用するBETWEEN演算子は、> =および<=ではなく、>および<のように動作します