[前][次][番号順一覧][スレッド一覧]

mysql:14238

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Sun, 30 Sep 2007 18:25:48 +0900
Subject: [mysql 14238] Re: フィールドごとのキャラクタセットの異なる指定

とみたです。

On Sun, 30 Sep 2007 03:17:26 +0900
柴垣 <akiro@xxxxxxxxxx> wrote:

>  そこで、質問なのですが、文献では、フィールドごとのキャラ
> クタセットの変更は避けた方がいい、という記述があるのですが、
> 
> create table tblSmpl
> (
> Id int unsigned not null auto_increment, primary key (Id),
> Code char(5) character set latin1,
> Name char(16) character set cp932
> );
> 
> のように、日本語はcp932のみ、ANK文字限定のフィールドだけは
> latin1、という設定でも、避けた方がいいのでしょうか。

やはり避けた方が無難だと思います。

たとえば latin1 と互換がない文字列と比較したりしたら、エラーになります。

mysql> select * from tblSmpl where Code='あ';
ERROR 1267 (HY000): Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (cp932_japanese_ci,COERCIBLE) for operation '='

ANK という呼び方は懐かしいのですが、いわゆる半角カナを含む JIS X 0201
のことですよね。JIS X 0201 を表す charset は MySQL にはないのですが、
latin1 よりも、JIS X 0201 と同じ位置に半角カナを含む cp932 を使用した方
がいいのではないかと思います。

-- 
とみたまさひろ <tommy@xxxxxxxxxx>
日本MySQLユーザ会 http://www.mysql.gr.jp

[前][次][番号順一覧][スレッド一覧]

     14237 2007-09-30 03:17 [柴垣 <akiro@xxxxxxxx] フィールドごとのキャラクタセットの異なる指定
->   14238 2007-09-30 18:25 ┗[とみたまさひろ <tomm]                                       
     14240 2007-09-30 23:54  ┗[柴垣 <akiro@xxxxxxxx]                                     
     14241 2007-10-01 01:28   ┗[とみたまさひろ <tomm]                                   
     14242 2007-10-02 01:30    ┣[柴垣 <akiro@xxxxxxxx]                                 
     14243 2007-10-02 01:33    ┗[柴垣 <akiro@xxxxxxxx]