ホームページ  >  記事  >  バックエンド開発  >  mysqlクエリ中国語データ

mysqlクエリ中国語データ

WBOY
WBOYオリジナル
2016-06-13 13:25:221067ブラウズ

MySQL クエリの中国語データ
大量のデータを含むテーブルがあります。名前フィールドのデータは中国語と英語です。どのデータが中国語であるかを調べたいと思います。

-----解決策---------
まずステートメントを標準化しましょう:
通常、「中国語」の意味は非常に明確であると言われますが、コンピューター上ではそれほど明確ではありません....
UTF8 の中国語文字は、韓国語および日本語とまとめられます。 cjk と総称される文字... 実は全角記号もいくつか含まれています...

utf8 の漢字は基本的に 3 バイト領域にあります 一部 4 バイト文字もありますが、まれな文字です。
同時に 3 文字 セクションエリアにはインドの文字もあります...使い方がわからないので気にしません...

そこで、少し単純化して、「3 バイト utf8 文字」レコード

を持つすべての単語を検索したいと仮定して、この
name regexp concat('[',char(0xE0), '-',char(0xEF),'][',char(0x80 ),'-',char(0xBF),'][',char(0x80),'-',char(0xBF),']' )

xXX は mysql では記述できないことに注意してください。正規表現で直接使用するため、char と concat を使用する必要があります...Google ではこれより便利な方法が見つかりませんでした...


また、データに 2 バイト領域があるかどうかはわかりませんが、文字 (欧文文字、ギリシャ文字、ラテン文字など)、
よろしければ。何もありません...OK!!!
これは、データが 1 バイトの ASCII 文字に加えて 3 バイトの中国語文字であることを意味します... ..

その場合は、単純なメソッド:
char_length(名前)!=length(名前)



------解決策------------------
Mysql の REGEXP はあまり強力ではありません。試してください [ ^[ :alnum:][:cntrl:][:space:]]

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。