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]