mysql:14240
From: 柴垣 <柴垣 <akiro@xxxxxxxxxx>>
Date: Sun, 30 Sep 2007 23:54:51 +0900
Subject: [mysql 14240] Re: フィールドごとのキャラクタセットの異なる指定
柴垣です。返信、ありがとうございます。 (フィールドごとのキャラクタセットの異なる指定は) > やはり避けた方が無難だと思います。 > > たとえば 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 を使用した方 > がいいのではないかと思います。 うーん。やっぱりそうですか。latin1を指定しようとしたフィールド には、実際には半角英数しか使うつもりはないのですが、たしかに漢字 などと比較される惧れがまったくないとは言い切れないかもしれません。 このような質問を投げた理由は、 ・5バイトですむはずのフィールドに10バイトも確保するのはもったい ない、という思いと ・「A0001」でいっぱいになるフィールドに、「A0001」も入って しまうのが納得できない、という単純な感覚からなのですが、 文字列をバイト数に換算して扱い、「シフトJIS1文字の領域に半角 英数ならば2文字入る・・・」という文化からの移行には、しばらく頭を 悩ませそうです。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 柴垣 顕郎 akiro@xxxxxxxxxx _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
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]