mysql:7123
From: "Yoshihiro Amano" <"Yoshihiro Amano" <yoamano@xxxxxxxxxx>>
Date: Wed, 5 Mar 2003 22:16:16 +0900
Subject: [mysql 07123] 文字列比較関数について
こんちには、天野と申します。 日本語が含まれているDBを検索したところ、意図した検索結果 が出てこなくて困っております。やりたいことはとても単純なことです。 mysql> describe dummy_table; +--------------+--------------+------+-----+------------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+------------+-------+ | no | int(3) | | MUL | 0 | | | keyword | varchar(255) | YES | MUL | NULL | | +--------------+--------------+------+-----+------------+-------+ mysql> select * from dummy_table; +------+------------+ | no | keyword | +------+------------+ | 1 | 東京 | | 2 | 東京駅 | | 3 | 東京大学 | | 4 | テレビ東京 | | 5 | 東急 | | 6 | 東急ハンズ | | 7 | 東武線 | | 8 | 関東平野 | +------+------------+ mysql> select * from dummy_table where keyword='東京'; +------+------------+ | no | keyword | +------+------------+ | 1 | 東京 | | 5 | 東急 | +------+------------+ mysql> select * from dummy_table where keyword like '%東京%'; +------+------------+ | no | keyword | +------+------------+ | 1 | 東京 | | 2 | 東京駅 | | 3 | 東京大学 | | 4 | テレビ東京 | | 5 | 東急 | | 6 | 東急ハンズ | +------+------------+ という結果が返ってきます。なんかふに落ちません・・・ まず、keyword='東京' という条件でなぜ『東急』が結果出力されてしまうのか? そして、like '%東京%' という条件でも『東急』と『東急ハンズ』が結果出力されてしまうのか? MySQLの場合、日本語の文字列比較をする場合は何かしなければならないのでしょうか? 文字コードの問題とかそういうのでしょうか? 環境は、FreeBSD4.1 MySQL3.23.49 です。 よろしくお願いします。
7069 2003-02-27 21:54 ["Yoshihiro Amano" <y] 日付のフォーマット 7070 2003-02-27 22:06 ┣[Daiju Azuma <daiju_a] 7071 2003-02-27 22:21 ┃┗["Yoshihiro Amano" <y] -> 7123 2003-03-05 22:16 ┗["Yoshihiro Amano" <y] 文字列比較関数について 7124 2003-03-05 22:32 ┗[Mikage Sawatari <mik] 7125 2003-03-05 22:59 ┗["Yoshihiro Amano" <y] 7127 2003-03-06 09:43 ┗[Kitajima <kitajima@x] 7139 2003-03-06 18:03 ┗["Yoshihiro Amano" <y]