• 締切済み

特定の単語の検索除外

PHPとMySQLを利用した検索フォームを作成しています。 そこで質問なんですが、2重括弧があればそのカッコ内の単語はすべて検索結果に表れないようにしたいです たとえば、[[test]]というデータがあったとすると、testと検索しても表示されないようにする。 PHPでもMySQLでも構いません。個別に単語を登録する以外でこれを解決する方法はないでしょうか? よろしくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数10

みんなの回答

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

仮に 「aaatestbbb」はヒットして「aaa[[test]]bbb」はヒットしないとして 「aaatestbbb[[test]]ccc」はどうするのでしょうか? ヒットしなくていいなら where not カラム like '%[[test]]%' and カラム like '%test%' みたいな感じ どちらにしても前方後方一致はインデックス対象外なので スピードは期待できませんが

関連するQ&A

  • MySQL4.0での日本語検索

    MySQL4.0で簡単なワード検索をしようと思っています。 HTMLのフォームを使い、単語をいれてもらう形式です。 FULLTEXTを使い日本語検索をしようとおもったのですが、どうやら格納するデータおよび、検索する際の単語をお互い16進変換すれば大丈夫そうなのですが、データを登録する際の諸事情によりそういうわけにも行かず困っています。 LIKE '%テスト%' みたいな検索だとさすがに重過ぎるわけです。 なにかよい方法はないのでしょうか? ちなみに、サーバ環境はレンタルサーバのためかなり制約があります。。

  • 検索フォームにMysqlを利用するメリット

    自分のウェブサイトに検索フォームを設置したいです。 Mysqlとphpを利用して作ると言うことは解ったのですが、 Mysqlを利用しなくても、外部csvファイルなどをサーバーにアップし、 それを読み込んで一致条件から検索結果を出力することも可能 なのかなと思います。 お伺いしたいのですが、わざわざmysqlを利用するメリットって なんなのでしょうか。 ちなみに作りたい検索フォームは、テキスト+チェックボックスで、条件の and/orも付けてやる予定です。 CSSやphpを利用した問い合わせフォームなど基本的な事が一通り出来るレベルです 宜しくお願いいたします。

    • ベストアンサー
    • MySQL
  • php mysqlで条件検索したいが学び方は

    http://www.asakusa-chintai.com/list.php?foot_station=-1&yachin_low=-1&yachin_hi=-1&menseki_low=-1&menseki_hi=-1&pict=1&search_start=1 このサイト(下に検索フォームがあります)のように、複数条件で検索すると画像付きで横4列くらいで結果が返ってくる、さらに20件ごとに改ページといったようなものを作りたいと考えています。 そこで質問なのですが、phpとmysqlを使うことでこのようなページ、またデータベースにデータを登録するようなシステムはできるでしょうか? phpとmysqlを勉強すればできるようになるのではと考え、phpの基礎の本は一冊読み、簡易ブログシステムを作った程度の(といってもサンプルプログラムを少しいじって動かした程度ですが)ことはしたのですが、これから何を勉強すればいいのかわからなくなりました。 特にphpやmysqlを勉強したいわけではなく、上記のようなページを作成することが目的なので、できればphpやmysqlを体系的に学ぶというよりは、上記のページを作成するために必要な技術だけ学びたいです。 これから何を学べばできるようになるでしょうか? それとも、これは相当に難しい事で、年単位で勉強しなければできないものなのでしょうか?

    • ベストアンサー
    • PHP
  • 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
  • 検索結果がない時の信号の取り方を教えてください

    MySQLで検索結果がない場合の表記方法で、何もないと、検索結果が表示されないで終わりです。 検索結果がないときに、”検索結果のデータは存在しません”というような表示にしたいと思っています。 検索結果がある、ないの信号の取得方法を教えてもらえると幸いです。 ちなみに、PHP5+MySQL4.1.22で作成中です。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHPの検索について

    現在html、PHP、MySQLを使い検索システムの作成を行っているのですが、検索をしてMySQLより所得した結果何件表示されました、という感じにしたいです。 yahooでPHPで検索すると約11,440,000,000件みたいに。 やり方が分からなく何か参考になるサイトなどがありましたら教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • LIKE %検索単語%

    perlのDBIを用いてMYSQLのLIKE %検索単語%を使って掲示板の記事の全文検索を作りました。日本語の検索に関しては意図した記事を拾ってきてくれるのですが、英字の検索単語に関して、その英字だけを含んだ以外の記事も余計に拾ってきてきます。 現在の症状 【僕らは】 【意味】 【宝山】 といった単語が入った記事が検索単語をLIKE %a% として検索をかけると 【a】の検索結果として返ってきます。上記の記事内にはもちろん【a】という単語は含まれていません。 【僕らは】【意味】【宝山】といった単語はあくまでもこういった単語が検索結果として返ってきたというだけで参考までに用意した単語です。他にもあると思われます。原因がまったくわからないので、なぜこういった単語が【a】と検索をかけて引っかかってくるか全くわかりません。 掲示板の記事は以下にいれています テーブル名 post カラム名 log select * from post where log like '%a%'; 使用中の環境(PERL,MYSQLなど)の文字コードはすべてutf8で統一。 文字コードも統一しているし、日本語では意図したとおり動いてくれるので原因がまったくわかりません。お知恵をお貸しください。

  • MySQLで日本語検索

    MySQL初心者のものです。 今PHPとMySQLを利用して検索システムを作っています。 しかし日本語検索がどうしてもうまくいきません。 一応「教えてgoo」でも探してみたのですが、解決しませんでした。 MySQLで、 テーブル名 table フィールド名 field とすると、 select * from table where field like '%キーワード%'; のように検索してみたのですが、思うような結果が返ってきません。 ネットで検索すると「senna」をインストールと書かれていましたが、 そういったものをインストールしなければMySQLで日本語検索は出来ないものなのでしょうか? ちなみに MySQL5.0 PHP5.2.1 を利用しています。

  • html+php+mysql検索画面構成について

    お世話になります。 htmlからphpを呼びmysql結果を表示したいのですが ファイル構成について教えてください。 イメージとしては、下のようなものが1ページに表示されます。 ---------------- ・検索条件入力域 ・検索ボタン ---------------- 検索結果表示域 ---------------- 1.検索結果には初回アクセス時に条件なしの結果が表示されます。 2.検索ボタンを押下すると、検索結果のみ再描画されます。 このような処理をしたいのですが、ファイル構成としてはどうすればよいでしょうか。 今考えているのは main.html ----------- 検索フォーム記載 -- (1) 検索.php呼び出し(初期表示 ----------- 検索.php --------- mysqlからデータ取得し出力 --------- です。 ここでイメージができないのですが 検索ボタン押下時に呼ぶファイルは別途作成する必要がありますか? 仮に検索.phpに渡すとしたら、検索.php内にmain.htmlの(1)を記載しなくては いけないのではと思ってます。 もっとスマートな構成があると思うので、熟練者の方ご教示お願いします。

    • ベストアンサー
    • HTML
  • 日付検索で0000-00-00 00:00:00を除外したい

    日付検索で0000-00-00 00:00:00を除外したい mysql5.0 データ型はdatetimeで日付検索をしたのですが、 日付が"0000-00-00 00:00:00"で登録されているデータも 検索結果に表示され困っています。 例えば、 SELECT * FROM user_tbl WHERE (DATE( hizuke ) <= '20100505') →これだと、hizukeが0000-00-00 00:00:00のデータも表示されてしまいます。 日付が0000-00-00 00:00:00で登録されているデータを除外するため 自分もいろいろしてみたのですができません。どなたか教えていただけないでしょうか。 参考までに、自分が試したsql文を書きます。↓ SELECT * FROM user_tbl WHERE (DATE( hizuke ) <= '20100505') and (hizuke != '0000-00-00 00:00:00') SELECT * FROM user_tbl WHERE (DATE( hizuke ) <= '20100505') and (hizuke <> '0000-00-00 00:00:00') SELECT * FROM user_tbl WHERE (DATE( hizuke ) <= '20100505') and (hizuke not in ('0000-00-00 00:00:00')) →上記載のsqlはすべて検索件数が0になってしまいました。 もうわからなくなってしまったので、アドバイスお願いします。

    • ベストアンサー
    • MySQL