• ベストアンサー

PHPからMySQLで一文字でも一致したら表示したい

PHPからMySQLで一文字でも一致したら表示したいのですが その場合のSQL文はどうすればいいのでしょうか? 日本語で漢字一文字だと都合が悪いそうですが? 前方一致(keyword%)中央一致(%keyword%)や後方一致(%keyword)を統合したモノはありますかね? 東京都渋谷区神宮前ならこの9文字中一文字でも検索語にあれば、 例えば、東、都立高校、髪神紙加味、いずれの場合でも 東京都渋谷区神宮前と検索結果が出てきて欲しいのです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

SQL一発での検索は難しいでしょう。 フィールドの中身をmb_eregi関数で正規表現検索を 行ってはどうですか? その場合はコーディングでデータ全件数をループし パターンマッチングを行わないといけないので レスポンスは落ちますが… とりあえず機能としては実現することが出来ますよ。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

こんにちは。 検索対象が1対多ではなく、多対多なので、SQL一発では無理そうですね・・・。 どちらか一方は1文字ずつ切り出して、再帰的に検索するしかなさそうです。 (^^ゞ

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • mysqlのlike binaryでの前方一致

    mysql4.0.25でlike binaryを使って日本語検索をしていますが インデックスを使いたいので前方一致で条件を作ると検索されません。 文字コードはeuc-jpです。 部分一致でしか検索にひっかからないのですが 文字コードなど関係があるのでしょうか?

    • ベストアンサー
    • MySQL
  • PHP/MySQLであいまい検索を

    HP上のテキストボックスに文字を入力し、その値をPHPでMySQL上のデータベースよりあいまい検索をし 該当するデータを表示したいのですが、私の検索キーワードが悪いのか、いいサンプルソースが見つけられません。 MySQLのREGEXP関数を使ってあいまい検索を 行うサンプルは見つけたんですが、これは日本語対応では なく検索文字列によってはうまく検索できない場合が あると聞きました。 何かよいサンプルがあったらURLもしくは ソースをそのままで結構ですので貼り付けていただければ 助かります。 では、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Like "*あ*"は、何一致というのでしょうか?

    あいまい検索について用語を教えてください Like "あ*" これは「前方一致」 Like "*あ" これは「後方一致」 では Like "*あ*"は何一致というのでしょうか? 「前方後方一致」で良いのでしょうか? よろしくお願い致します。

  • MySQLとPHP 完全一致

    一致するか確認する物は $getkeyと$getmailの2つにあるとします データベースより、 $getkeyの書いてあるのを探す列はKEYとして、 $getmailの書いてあるのを探す列はMAILとして、 どちらも完全一致の場合は、処理を続けるスクリプトを作りたいのですが。 たとえば asr7yn7m84の一致する物を検索 データベースの中に asr7yn7m があっても、asr7yn7mは、一致してないと判別する方法 あと、完全一致した行(同じ内容は作られないようにしています。)の 内容を取り出す方法はどうすればいいのでしょうか? mysql_fetch_assocでよろしいのでしょうか?

    • 締切済み
    • PHP
  • vlook関数を使用しての文字列について

    東京都渋谷区神宮前1-2-3というデータをVLOOK関数を使用し  A1東京都 A2渋谷区 A3神宮前 A4.1-2-3 と出した際に A4のハイフンを含んだ番地がセル内では自動計算されてしまいます。 そのセルの書式を文字列にしていますと数式になってしまいますのでハイフンを のこした表示にする方法を教えて下さい。

  • セルとセルに入力された文字を一緒にする方法。

    A1セルに「東京都渋谷区神宮前」 B1セルに「1-1-1」 と入力してあります。 それを 東京都渋谷区神宮前1-1-1 という風に、例えばC1に入力したいです。 またA1セル及びB1セルのデータが、 縦に数千行入力してあるので、 一つだけでなく、全てのデータを変換出来る 方法をご教示願いたいです。 宜しくお願いします。

  • PHP+mysqlでの検索について

    データベースの方で同じ質問をしましたが、カテゴリー的にはこちらの方が適当だと感じましたので、再度このカテゴリーで質問させていただきます。 以前、このカテゴリー内で「MYSQLで違う検索結果が出てしまいます。」という質問をした者です。 再度同じような壁にぶつかってしまい悩んでいます。 具体的には以下のよう状態です。 テスト環境(会社のパソコン) PHP4.2.3 mysql4.0.5 検索結果~異常なし 公開環境(レンタルサーバー) PHP4.1.2もしくは4.2.1(サーバーによって違うということです) mysql3.23.46 検索結果~正しい検索結果が出ない となっています。 検索語がカタカナor漢字の場合は正常に動作するのですが、ひらがなだと「な」と「に」、「に」と「り」などがごちゃごちゃになるらしく、 例えば、検索語で「うに」と入れると「うに」と「うり」が検索結果として返ってくるのです。 文字コードの設定かとも思ったのですが、テストの環境の方では正しい検索結果が出ていますし、mysql内の文字コードもテスト環境はもちろんですが、レンタルサーバーの方でも「文字コードにEUC文字コードを利用して下さい」ということから、テスト環境と同じく default-character-setはujisになっていると思われます。 あとはPHP・mysqlのバージョンの違いくらいしか思い当たるところがありません。 どなたかアドバイスいただけるとありがたいです。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • phpでMysqlにデータを書き込むと文字化

    皆様、教えて下さい。 phpで、日本語文字を入力させて、その内容をMysqlデータベースに保存しようと しているのですが、文字化けしてしまってます。(>_<) 素人なので、ネットで色々と方法を検索してみたのですが、よく判りません。 どなかた、教えて頂けますでしょうか? php側: mb_language("Japanese"); mb_internal_encoding("EUC-JP"); $aaa = 'あああ'; $query = "UPDATE database1 SET data2 = '$aaa' WHERE data1 = '$id'"; mysql_query($query); print $aaa; 上記のような内容ですが、画面上では、きちんと「あああ」と表示されている のですが、Mysqlのデータを見ると、文字化けしております。 お手数ですが、どなたか宜しくお願いします♪

    • 締切済み
    • PHP
  • VB.NET ListBox内の前方一致ではない文字列検索

    VB.NETにてListBox内の文字に対し,前方一致ではなく含まれる文字列を検索したいと思っています。ListBox1.FindString("文字")やListBox1.Items.IndexOf("文字")は使ってみましたが,前方一致になってしまうため使えませんでした。ListBox1.Items.Contains("文字")が使えそうかなと考えましたが,うまく文字を検索できません。半角英数字は検索できないというわけでもなさそうです。どなたか,使える関数を教えてはいただけませんか?よろしくお願いします。

  • 前方一致・後方一致を両方行って単語を検索するには?

    新設する社名を考えている者です。 「Sで始まり、Sで終わる単語」というものを探しています。このように前方一致・後方一致を同時に行って単語を検索できる方法をご存じの方、どうぞお知恵をお貸し下さい。よろしくお願いいたします。