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

mysql:14807

From: SAKAI Kei <SAKAI Kei <sak2@xxxxxxxxxx>>
Date: Fri, 17 Apr 2009 21:00:38 +0900
Subject: [mysql 14807] Re: SJISで文字コードがシフト?してしまい検索できない

坂井です。

  ああっ!浅山さん、upper() していたのですね。
  これがたぶんみんなが一番知りたかった情報です。
  
  私のほうでも試してみたところ、どうも charset の設定にかかわらず
  upper されてしまうような挙動に見えます。不具合な予感。
  以下皆さんにも判断していただきたく、やったことを書きます。
  
--テーブルを作成し、データを3件INSERT。
mysql> create table t (a varchar(16)) engine=myisam default charset=cp932;
mysql> insert into t values ("ビタ");
mysql> insert into t values ("ABC");
mysql> insert into t values ("abc");

--UPPER() の挙動を確認(参考)
mysql> select * from t WHERE upper(a)="ABC";
+------+
| a    |
+------+
| ABC  | 
| abc  | 
+------+
2 rows in set (0.00 sec)

--問題の日本語文字でUPPER()の挙動を確認
mysql> select * from t WHERE upper(a)="ビタ";
Empty set (0.01 sec)

mysql> select * from t WHERE upper(a)="コタ";
+------+
| a    |
+------+
| ビタ | 
+------+
1 row in set (0.00 sec)


===============
--UPPER()関数によって CP932の2バイト目がUPPERされてしまっていることの確認(不具合と思います)

mysql> SELECT a, HEX(a), HEX(UPPER(a)) FROM t;
+------+----------+---------------+
| a    | HEX(a)   | HEX(UPPER(a)) |
+------+----------+---------------+
| ビタ | 8372835E | 8352835E      | 
| ABC  | 414243   | 414243        | 
| abc  | 616263   | 414243        | 
+------+----------+---------------+
3 rows in set (0.00 sec)


===============
--環境とか
mysql> SHOW CREATE TABLE t\G
*************************** 1. row ***************************
       Table: t
Create Table: CREATE TABLE `t` (
  `a` varchar(16) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp932
1 row in set (0.00 sec)

mysql> status
--------------
:
Server version:         5.0.45 Source distribution
:
Server characterset:    cp932
Db     characterset:    cp932
Client characterset:    cp932
Conn.  characterset:    cp932
--------------

mysql> show create database test;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET cp932 */ | 
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)

Thank you 

On Fri, 17 Apr 2009 20:38:31 +0900
ALCYONE@xxxxxxxxxx (浅山雄三) wrote:
> 奥野様
> 
>   浅山です。いつもお世話になります。
> 
> 
>  >その現象はテーブルの文字コードが違うときの現象に似てるんですが、
>  >もう一度テーブルの文字コードを確認して頂けませんか?
>  >
>  >mysql> SHOW CREATE TABLE テーブル名\G
> 
> | Aテーブル | CREATE TABLE `Aテーブル` (
>   `AA_num` varchar(16) NOT NULL,
>   `BB_num` varchar(16) DEFAULT NULL,
>   `CC_num` varchar(16) DEFAULT NULL,
>   `DD_sb` text,
>   `EE_mei` text,
> (以下、同様の行が205行)
>   `biko3` text,
>   `update_dattim` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON 
> UPDATE CURRENT_TIMESTAMP,
>   `FF_flg` varchar(1) DEFAULT NULL,
>   `GG_num` varchar(16) DEFAULT NULL,
>   `HH_num` varchar(16) DEFAULT NULL,
>   `II_url` varchar(500) DEFAULT NULL,
>   `biko4` text,
>   `biko5` text,
>   PRIMARY KEY (`AA_num`),
>   UNIQUE KEY `Aテーブル_uk1` (`JJ_num`),
>   KEY `Aテーブル_KK_num_idx1` (`LL_num`),
>   KEY `MM_flg_idx` (`LL_flg`)
> ) ENGINE=MyISAM DEFAULT CHARSET=cp932 | 
> 
> 
> | Bテーブル | CREATE TABLE `Bテーブル` (
>   `AA_num` varchar(16) NOT NULL DEFAULT '',
>   `data` longtext,
>   `ngram` longtext,
>   PRIMARY KEY (`AA_num`),
>   FULLTEXT KEY `ngram` (`ngram`)
> ) ENGINE=MyISAM DEFAULT CHARSET=cp932 |
> 
> 
>  >あと、問題になってるSELECT文も見せて頂けますでしょうか?
> 
> select SQL_SMALL_RESULT AA_NUM, BB_NUM, CC_KJ, DD_EN, EE_EN, 
> FF_KJ1,length(trim(BB_NUM)) BB_NUM_LEN from Aテーブル DT, Bテーブル 
> TP where ((upper(DD_EN) like '%ビタミン%' or upper(GG_EN) like '%ビ
> タミン%' or upper(CC_KJ) like '%ビタミン%') and (upper(DD_EN) like 
> '%サプリメント%' or upper(GG_EN) like '%サプリメント%' or upper
> (CC_KJ) like '%サプリメント%')) and (upper(substr(HH_CD1,1,1)) = 
> 'B' or upper(substr(II_CD2,1,1)) = 'B' or upper(substr(JJ_CD3,1,1)) 
> = 'B') and AA_NUM = TP.KANRI_NUM and (MATCH(NGRAM) AGAINST('+栄養
> *' IN BOOLEAN MODE)) order by CC_KJ
> 
> 
> ※ Aテーブルは[mysql 14797]のAテーブル
>    Bテーブルは[mysql 14797]のBテーブル
>    フィールド名の一部を実際とはかえています。
> 
> 
>  2009年4月17日 20:38:27 (^o^)浅山雄三



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

     14789 2009-04-15 19:14 [<ALCYONE@xxxxxxxxxx>] SJISで文字コードがシフト?してしまい検索できない
     14790 2009-04-15 19:28 ┣[Isamu Moriyama <mori]                                       
     14791 2009-04-15 19:43 ┃┗[<ALCYONE@xxxxxxxxxx>]                                     
     14792 2009-04-15 20:17 ┣[SAKAI Kei <sak2@xxxx]                                       
     14795 2009-04-16 15:06 ┃┣[<ALCYONE@xxxxxxxxxx>]                                     
     14796 2009-04-16 15:13 ┃┃┣[<ALCYONE@xxxxxxxxxx>]                                   
   @ 14800 2009-04-16 17:28 ┃┃┃┗[chuuken kenkou <ken_]                                 
     14803 2009-04-17 19:51 ┃┃┃ ┗[<ALCYONE@xxxxxxxxxx>]                               
     14805 2009-04-17 20:50 ┃┃┃  ┗[Satoshi Tatsuoka <sa]                             
     14802 2009-04-17 17:05 ┃┃┗[SAKAI Kei <sak2@xxxx]                                   
     14806 2009-04-17 20:55 ┃┃ ┗[<ALCYONE@xxxxxxxxxx>]                                 
     14801 2009-04-17 15:52 ┃┗[Mikiya Okuno <Mikiya]                                     
     14804 2009-04-17 20:38 ┃ ┗[<ALCYONE@xxxxxxxxxx>]                                   
->   14807 2009-04-17 21:00 ┃  ┗[SAKAI Kei <sak2@xxxx]                                 
     14808 2009-04-17 21:12 ┃   ┣[SAKAI Kei <sak2@xxxx]                               
     14810 2009-04-18 13:37 ┃   ┃┗[Satoshi Tatsuoka <sa]                             
     14811 2009-04-18 15:38 ┃   ┃ ┣[Yoshinori Matsunobu ]                           
     14813 2009-04-18 17:03 ┃   ┃ ┃┗[Satoshi Tatsuoka <sa]                         
     14814 2009-04-18 17:17 ┃   ┃ ┃ ┗[Yoshinori Matsunobu ]                       
     14815 2009-04-20 10:03 ┃   ┃ ┃  ┗[<ALCYONE@xxxxxxxxxx>]                     
     14821 2009-05-06 14:05 ┃   ┃ ┃   ┗[SAKAI Kei <sak2@xxxx]                   
     14840 2009-05-09 12:01 ┃   ┃ ┃    ┣[SAKAI Kei <sakaik@xx]                 
     14956 2009-07-06 16:57 ┃   ┃ ┃    ┗[SAKAI Kei <sak2@xxxx] MySQL 5.1.36 リリース(was Re:  Re: SJISで文字コードがシフト?してしまい検索できない
     14812 2009-04-18 16:10 ┃   ┃ ┗[SAKAI Kei <sak2@xxxx]                           
     14809 2009-04-17 21:23 ┃   ┗[Satoshi Tatsuoka <sa]                               
     14794 2009-04-15 23:37 ┗[とみたまさひろ <tomm]                                       
     14797 2009-04-16 15:34  ┗[<ALCYONE@xxxxxxxxxx>]                                     
     14798 2009-04-16 15:41   ┗["Y. Tsutsui" <tutui@]                                   
     14799 2009-04-16 16:44    ┗[<ALCYONE@xxxxxxxxxx>]