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]