ホームページ  >  記事  >  データベース  >  MySQL で漢字を判別するにはどうすればよいですか?

MySQL で漢字を判別するにはどうすればよいですか?

黄舟
黄舟オリジナル
2016-12-21 17:07:302009ブラウズ

出典: Wen Guobing 原文を Bole Toutiao に共有することを歓迎します

1 はじめに

実稼働環境では、中国語のデータを取得するというシナリオがよくあります。そこで疑問が生じます。どうすれば漢字を一致させることができるのでしょうか?

この記事では 2 つの方法を紹介します。

2 番目のデモ

2.1 環境


mysql> SHOW VARIABLES LIKE "%version%";

+---------------------- --- --+--------------------------------+

| 変数名 |

+- ----- -------+-------------------------- ------- +

| バージョン |

| バージョン_コンパイル_os | darwin10.3.0 |

+ ------------------------+-------------- -------- ------+

5行セット(0.00秒)

2.2 テストテーブルの作成とテストデータの挿入

mysql -S /tmp/mysql_5173.sock -uroot -proot

テストテーブルを作成し、テストデータを挿入します。

mysql> テストを使用します;

データベースが変更されました

-> (name VARCHAR(20)

->) DEFAULT CHARSET = utf8 ENGINE = INNODB;

Query OK、0行です影響を受けました (0.10 秒)

mysql> SHOW TABLE STATUS LIKE 'user' G;

**************************** 1.行 ****************************

名前: ユーザー

エンジン: InnoDB

バージョン: 10

Row_format: Compact

行数: 2

Avg_row_length: 8192

Data_length: 16384

Max_data_length: 0

Index_length: 0

Data_free: 0

Auto_increment: NULL

Create_time: 2 015 -01-16 18:01:36

Update_time : NULL

Check_time: NULL

照合順序: utf8_general_ci

チェックサム: NULL

Create_options:

コメント:

セット内の 1 行 (0.00 秒)

エラー:

クエリが指定されていません

mysql>に挿入user VALUES('robin');

クエリ OK、1 行が影響 (0.01 秒)

mysql> INSERT INTO user VALUES('Wen Guobing');

クエリ OK、1 行が影響 (0.00 秒)

3実装

3.1 メソッド 1 正規表現

mysql> SELECT * FROM user G;

*************************** 1.行 * ****************************

名前: robin

************ ************ ********** 2. 行 ************************* **

名前: Wen Guobing

セット内の 2 行 (0.00 秒)

mysql> SELECT name,

-> CASE name REGEXP "[u0391-uFFE5]"

-> WHEN 1 THEN漢字ではありません"

-> ELSE "は漢字です"

->END AS "漢字かどうかを判断します"

-> FROM user;

+------ --+----------- -------+

| 名前が漢字かどうかを判断する |

+----------+------ -----------------------+

| |

| ウェン・グオビン| は漢字です|

+----- ------+------ --------------+

セット内の 2 行 (0.00 秒)

mysql> ; ユーザー WHERE NOT から名前を選択 (name REGEXP "[u0391-uFFE5]");

+ ----------+

| 名前 |

+---------- ---+

|

+---------- -+

1 rowinset(0.00 sec)

3.2 メソッド 2 length() と char_length()

mysql> ; SELECT name, length(name), char_length(name) FROM user;

+--- --------+--------------+---- ---------------+


| (名前) | char_length(名前) |

+----------+---- ----------+------------ -------+

| 5 |

| 9 |

+----------+------ -------+-------------------+

セット内の 2 行 (0.00 秒)

mysql> SELECT name FROM user WHERE length(name ) char_length(名前);

+----------+

| 名前 |

+ -----------+

| ----------+

1行インセット(0.00秒)

上記は、MySQL で漢字を判別する方法です。関連コンテンツの詳細については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


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