• 締切済み

mysqlに格納したエクセルファイルの、シート内の文字列を検索したいの

mysqlに格納したエクセルファイルの、シート内の文字列を検索したいのですが上手くいきません。 半角英数の文字列なら、以下のSQL文で引っ張ってくることができました。 SELECT * FROM テーブル名 WHERE 列名 LIKE '%abc%'; mysqlのバージョンは5.1です。 検索はPHPで行おうと思っています。 どなたか知っている方いらっしゃいましたら、よろしくお願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>blob型で定義した列に、バイナリデータとして格納しました。 なんか変な話になっているような・・・ エクセルデータをバイナリで流しこんでそのまま検索するという無謀な試みですか? エディタでエクセルファイルを開いて、シートの中身を 見られるか確認してみれば、なぜ検索できないかわかるでしょう 文字を拾いたいなら、なんらかのライブラリで、エクセルのデータを 抜くような処理をいれないと難しいかもしれませんね いずれにしろSQLの処理ですからバイナリデータでヒットさせるのは データの持ち方としてはかなり非効率的です。 正規化も含めてSQLを学習なさった方がよろしいかと。

ekusuke
質問者

お礼

ありがとうございます。 ライブラリについて調べてみたのですが、ファイル形式ごと対応したライブラリを使うということになるのでしょうか? やりたいことは、アップロードができる掲示板などの記事の検索で、記事の本文だけでなく添付されたエクセルなどのファイルの中身まで検索できるようにしたいと考えています。 例えば、検索文字列の方をバイナリデータにして検索するなど、DBの中を直接検索する方法はないでしょうか? 後からの説明が多くなってしまい申し訳ありませんが、よろしくお願いします。 引き続きライブラリについても調べてみます。

  • localica
  • ベストアンサー率52% (202/385)
回答No.2

半角英数字のみ検索できるのなら、文字コードの問題と推測します。 mysqlの文字コードを、お使いの環境の文字コードに変更すれば改善しませんか?

ekusuke
質問者

お礼

ありがとうございます。 mysqlの文字コードはutf-8にしているのですが、エクセルやコマンドプロンプトの文字コードの設定方法が分かりませんでした。 明日また調べてみますが、もし知っていましたら教えてくださると助かります。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>mysqlに格納したエクセルファイル 状況がわかりかねるのでもう少し状況説明をお願いします 普通にやるとmysqlにエクセルファイルは格納できませんが・・・

ekusuke
質問者

補足

blob型で定義した列に、バイナリデータとして格納しました。 格納したエクセルを取り出すことはできるのですが、格納した状態で中身を検索することが上手くできません。

関連するQ&A