Win XPでMYSQL 5.5.10を使用しています。


下記のメッセージが出てVIEWを実行できません。
1267 Illegal mix of collations (cp932_japanese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'

文字コードが違うと出ているみたいですが、文字コードは下記になります。
+--------------------------+--------------------------+
| Variable_name | Value |
+--------------------------+--------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql\share\charsets\ |
+--------------------------+--------------------------+

回答の条件
  • 1人10回まで
  • 13歳以上
  • 登録:2011/04/13 19:36:14
  • 終了:2011/04/17 17:05:44

ベストアンサー

id:chuken_kenkou No.2

chuken_kenkou回答回数722ベストアンサー獲得回数542011/04/13 20:11:49

ポイント27pt

create viewを実行しているクライアントと、show variablesを表示しているクライアントは同じですか?

show variablesは、showコマンドを実行したクライアントの設定情報が表示されています。もし、ccreate viewを別の方法で発行しているなら、その環境でshowコマンドの結果を確認してください。

ビュー定義の基になる表は、どういう文字コードの設定で定義し、どういうデータが格納されているのでしょうか?

定義は、show create tableで確認してください。

id:popattack

ご回答ありがとうございます。MYSQLはローカルにインストールしています。またNAVICATプレミアムというソフトウェアを使用して、そのNAVICATに付属しているコマンドプロンプト?からshow variablesコマンドをうって文字コードを確認しています。ビューの基になる表自体の文字コードはどのように確認できるでしょうか?格納データは日本語です。Excelからインポートした日本語の文字が入っています。

2011/04/13 23:16:33

その他の回答(2件)

id:asuka645 No.1

あすか回答回数856ベストアンサー獲得回数972011/04/13 19:51:09

ポイント27pt

MySQLの文字コード変更」を参考に、テーブルの文字コードを cp932 に設定してみて下さい。

id:popattack

うーん、駄目でした・・・ご回答ありがとうございます

2011/04/17 17:04:04
id:chuken_kenkou No.2

chuken_kenkou回答回数722ベストアンサー獲得回数542011/04/13 20:11:49ここでベストアンサー

ポイント27pt

create viewを実行しているクライアントと、show variablesを表示しているクライアントは同じですか?

show variablesは、showコマンドを実行したクライアントの設定情報が表示されています。もし、ccreate viewを別の方法で発行しているなら、その環境でshowコマンドの結果を確認してください。

ビュー定義の基になる表は、どういう文字コードの設定で定義し、どういうデータが格納されているのでしょうか?

定義は、show create tableで確認してください。

id:popattack

ご回答ありがとうございます。MYSQLはローカルにインストールしています。またNAVICATプレミアムというソフトウェアを使用して、そのNAVICATに付属しているコマンドプロンプト?からshow variablesコマンドをうって文字コードを確認しています。ビューの基になる表自体の文字コードはどのように確認できるでしょうか?格納データは日本語です。Excelからインポートした日本語の文字が入っています。

2011/04/13 23:16:33
id:chuken_kenkou No.3

chuken_kenkou回答回数722ベストアンサー獲得回数542011/04/14 02:22:07

ポイント26pt

以前、cp932を使っていたということで、その時に作成したテーブルを使っているのではないのでしょうか?

文字コードを、表や列で明示指定していなければ、その時の文字コードの設定が省略時仮定値になります。


ビューの基になる表自体の文字コードはどのように確認できるでしょうか?


ビューの基表の名前は、分かりますか?

SQLを入力できる状態で、

show create table 表名

により、create table文のコードそのものを確認できます。

MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.5.4.9 SHOW CREATE TABLE 構文

character setが、どうなっているか確認してください。



そのNAVICATに付属しているコマンドプロンプト?からshow variablesコマンドをうって文字コードを確認

今回問題になったビューを使用しているのも、同じクライアントソフトという解釈でいいですか?

id:popattack

mysqlを再インストールしてなぜかなおりました・・・何が悪かったかはわかりませんがとりあえず解決しました。ありがとうございました。

2011/04/17 17:05:10
  • id:popattack
    mysql> show variables like "colla%";
    +----------------------+-----------------+
    | Variable_name | Value |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database | utf8_general_ci |
    | collation_server | utf8_general_ci |
    +----------------------+-----------------+

    キャラクターセットは、「utf8 -- UTF-8 Unicode」、照合は「utf8_general_ci」。

    my.iniでは
    [mysql]
    default-character-set=utf8
    [mysqld]
    character-set-server=utf8

    を設定しています。cp932がどこにも無いのにこのようなメッセージがでるのはなぜでしょうか?
    以前はcp932を使用していましたが、set character_set_client=utf8
    などとし、文字コードの変更はしています。

    少ないですが、ビンゴの方1名様に300ポイント差し上げます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません