2009年4月17日

[mysql 14804] Re: SJISで文字コードがシフト?してしまい検索できない

奥野様

浅山です。いつもお世話になります。


>その現象はテーブルの文字コードが違うときの現象に似てるんですが、
>もう一度テーブルの文字コードを確認して頂けませんか?
>

>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^)浅山雄三

投稿者 xml-rpc : 2009年4月17日 20:38
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/84396
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。