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

mysql:13695

From: Mamiya Masataka <Mamiya Masataka <xc8m-mmy@xxxxxxxxxx>>
Date: Sun, 28 Jan 2007 12:25:07 +0900
Subject: [mysql 13695] like で抽出する場合の注意点

皆さんこんにちは。茨城の間宮と申します。
いつも貴重な情報をありがとうございます。

まず最初に、こちらの環境は、
	Windows XP
	mySQL 4.0.18
	Apache 2.0.59
	perl 5.8.6
となっています。

文字コードの問題は、今まで何度もお世話になりました。
そのたびに文字コードの問題は今後どういう方向へ行くのだろうと
改めて考えさせられています。
少し前から私も、一部のデータで SJIS から EUC へ文字コードを変更しました。
サイト全体は SJIS で記述してあったりなので、
表示の際 Jcode.pm で SJIS に直して出力するなど面倒なことをやっています。

さて、like で検索をさせるさいの問題なのですが、

あるテキストデータ( euc で保存してある text にあるデータデータ)について
検索をかる処理を次のようにしています。
like を使い、検索文字列の前後を '%' ではさんでいます。

たとえば検索文字列が $s_word にあるとすれば
$q_s_word = quotemeta $s_word;
$q_s_word = '%'.$q_s_word.'%';
とし、
text like "$q_s_word"
で抽出をかけます。
このとき困ったことが起こっております。

力(\xCE\xCF)が含まれるデータをを抽出しようとすると
次の文字列が含まれるデータにも一致してしまうようです。
の様子は、(\xA4\xCE\xCD\xBB\xD2\xA4\xCF\xA1\xA2)
これは、上の文字列の中に \xCE\xCF が含まれているからのようです。
途中に別のデータがあるのですが、含まれているからのようです。

さらにいろいろ試してみますと、
のは(\xA4\xCE\xA4\xCF)
には一致しませんでした。

このような状況は仕様なのでしょうか?
それとも問題解決のための方法がありますでしょうか。

皆様のお知恵をお借りしたいと思います。
どうぞよろしくお願いします。



--
Mamiya masataka from IBARAKI JAPAN
0297-58-6313 090-4430-2918
mamiya@xxxxxxxxxx
masataka-orange@xxxxxxxxxx



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

->   13695 2007-01-28 12:25 [Mamiya Masataka <xc8] like で抽出する場合の注意点             
     13696 2007-01-29 04:29 ┣[Tasuku SUENAGA <a@xx]                                       
     13700 2007-01-29 11:02 ┃┣[Mamiya Masataka <xc8]                                     
     13703 2007-01-30 08:09 ┃┗[とみたまさひろ <tomm]                                     
     13711 2007-02-07 02:12 ┃ ┗[Mamiya Masataka <xc8]                                   
     13701 2007-01-29 12:12 ┗[YuGo <yu.gotou@xxxxx]