• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:REGEXPを使った検索文をスマートにできますか)

REGEXPを使った検索文をスマートにできますか

このQ&Aのポイント
  • REGEXPを使用して特定の単語を含むタイトルを検索するSQL文をスマートにする方法があるかどうかについて質問しています。現在のコードには問題はありませんが、より短く効率的な方法があれば知りたいとしています。
  • 現在はREGEXPを使用して単語ごとにタイトルを検索しているが、これが最適な方法かどうか疑問に思っている。もしスマートな方法があれば教えてほしいとしている。
  • REGEXPを使用したタイトル検索のSQL文が長くなることに疑問を持っており、より短く効率的な方法があるかどうかを尋ねている。

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

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

実際に動かして確認したわけではありませんが、 WHERE ( table1.title REGEXP "りんご" || table1.title REGEXP "みかん" || table1.title REGEXP "ばなな" || .........   ↓ WHERE table1.title REGEXP "りんご|みかん|ばなな|........." これはどうでしょう?

参考URL:
http://dev.mysql.com/doc/refman/4.1/ja/regexp.html
rabbit-kimura
質問者

お礼

こんな省略の仕方あったんですね!! 早速できました!! ありがとうございます、スッキリです!!

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

その他の回答 (1)

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

REGEXP を利用しているということは完全一致ではなく部分一致でよいのですよね? であれば WHERE table1.title REGEXP "りんご|みかん|ばなな" で十分では?

rabbit-kimura
質問者

お礼

これは知りませんでした。 ありがとうございます。

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

関連するQ&A

  • キーワード検索の方法

    いつもお世話になっております。 以下のようなテーブル(news)があります。 cid(int)|nid(int)|news_date(date)|body(text) キーは cid と nid です。 約4000件のデータからキーワードの検索をするのに とても時間がかかってしまいます。 SQL文は以下のようにしております。 select * from news where news_date between '2008-03-03' and '2009-03-03' and nid='1' and (body regexp 'キーワード1' or body regexp 'キーワード2') order by news_date DESC どうしたら速度が早くなるのでしょうか? インデックスをはったりすればいいのでしょうか? よろしくご教授お願いいたします。 <環境> MySQL:4.1.22(utf-8)

    • ベストアンサー
    • MySQL
  • PHP SQL 問合せについて

    SQLについて質問いたします。SQL 全般でも結構です。 No,name 1,ばなな 2,りんご 3,ばなな 4,みかん 5,ばなな 6,りんご 上記テーブルで 1,ばなな 3,ばなな 5,ばなな 2,りんご 6,りんご 4,みかん の結果を得るSQLはどのように記述すればよいでしょうか?

  • SQL文の書き方について

    SQLServer2005で、次のような品物の単価の履歴を表すテーブルを作りました。「,」は列の区切りです。 ID,Sort,Name,Price,Effective,Time 1,1,りんご,100,True,2009/4/1 2,3,なし,120,True,2009/4/1 3,2,ぶどう,150,True,2009/4/1 4,4,ばなな,80,True,2009/4/1 5,1,りんご,110,True,2009/4/20 6,3,なし,100,True,2009/4/20 7,3,なし,90,True,2009/4/25 8,4,ばなな,False,2009/4/25 このテーブルから、Effectiveが、Trueで、最新の単価をSort順に抽出するSQL文が判りません。 SELECT * FORM テーブル名 WHERE (Effective=1) ORDER BY Sort に、何を加えれば実現可能でしょうか? どなたか?詳しい方がいらっしゃいましたら、教えてください。 SQL文の初心者なので、簡単なことなんでしょうが、よろしくお願いいたします。入門書を読めば読むほど、こんがらかって、困っております。なお、Sortの部分は、正規表現的に問題があるので、見直そうと考えています。

  • 複数のSELECT文の結合について

    $sql = "(SELECT * FROM hospytal WHERE shochi LIKE \"%$keyword%\") UNION (SELECT * FROM hospytal order by kuchikomi desc);"; // 口コミ数の降順 このSQL文は間違っているでしょうか。 やりたいことは、hospytalテーブルのshochiカラムでキーワードを含むものを、 降順にソートしたいのですが。 どうすればちゃんと動作するのか、ご教授お願い致します。

    • ベストアンサー
    • MySQL
  • PHP SQL 問合せについて

    PHP SQL 問合せについて http://okwave.jp/qa/q7689206.html での質問の続きとなります。 No,name 1,ばなな 2,りんご 3,ばなな 4,みかん 5,ばなな 6,りんご 上記テーブルで 1,ばなな 3,ばなな 5,ばなな 2,りんご 6,りんご 4,みかん の結果を得るSQLはどのように記述すればよいでしょうか? 回答 select * from tableA x order by (select count(*) from tableA y where y.name = x.name ) ,No で解決していますが、 select * from tableA x where name ='果物' とした場合、結果が異なります。 (結果が多い順にならない) 出現回数が多い順に並べるには、どのような記述になりますか? データには「果物以外のデータが含まれている」とします。 宜しくお願い致します。

    • 締切済み
    • PHP
  • updateのsql文について

    mysql5.0です。 いかのsql文のなかdistrb_date項目にシステム日付を代入させたいですが書き方がわからなくて困っています。よろしくお願いします。 UPDATE file_tbl SET status = 2, distrb_date = (???), user_id = %s where file_name = %s AND file_type = %s order by file_ymd DESC

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

    下記のような「果物TBL」というテーブルがあるとします。 果物TBL -------------------------------- ID    名前      値段 - - - - - - - - - - - - - - - - - - - - 01    りんご     150 02    バナナ     250 03    みかん     250 04    ぶどう     300 -------------------------------- また上記のテーブルと全く同じ構成の「果物検索TBL」というテーブルがあるとします。 そのテーブルには、例として下記のような値を入れておきます。 果物検索TBL -------------------------------- ID    名前      値段 - - - - - - - - - - - - - - - - - - - - NULL   りんご     250 NULL   バナナ     NULL -------------------------------- この時、下記のようなSQLだと SELECT DISTINCT 果物TBL.名前 FROM 果物TBL INNER JOIN 果物検索TBL ON (果物TBL.ID = 果物検索TBL.ID AND LEN(果物検索TBL.ID) > 0) OR (果物TBL.名前 = 果物検索TBL.名前 AND LEN(果物検索TBL.名前) > 0) OR (果物TBL.値段 = 果物検索TBL.値段 AND LEN(果物検索TBL.値段) > 0); -------------------------------- 名前 - - - - - - - - - - - - - - - - - - - - バナナ みかん りんご -------------------------------- という結果になります。(名前:りんご・バナナと値段:250のOR検索) その結果を -------------------------------- 名前 - - - - - - - - - - - - - - - - - - - - バナナ -------------------------------- という結果にするにはどうすればいいでしょうか?(名前:りんご・バナナと値段:250のAND検索、バナナのみマッチ) 単純にORをANDにしてもうまくいきませんでした。 動的にSQLを作れれば良いのですが、この構成は変えられないのでNULL値がネックになり分かりません。 教えてください。 また、記載してるSQLよりもっとスマートな書き方があれば教えてください。

  • VB.NETでSQLを作る時のカンマの対処

    こんにちは。 タイトルの通りなのですが、VB.NETでSQL文を作りたいのですが、カンマの対処について分からなかったので質問させて頂きました。 例えば、下記のようなテーブルとwindowsアプリケーションフォームがあったとします。 itemテーブル                 フォーム(□はチェックボックスだと思ってください。) item_id  item_cd  item_name        □ りんご ---------------------------------       □ ばなな 0001    0001    りんご        □ みかん 0002    0002    ばなな        □ めろん 0003    0003    みかん 0004    0004    めろん このフォームで、チェックボックスに印が付いているものを、SQL文の条件に加えたいと思っていますが、なかなか上手く書けません。 現在のソース sql="SELECT item_id,item_cd,item_name " _   & "FROM item " _   & "WHERE item_name IN (" If apple.checked = True Then   sql &= "'" & label1.text & "'," End If If banana.checked = True Then   sql &= "'" & label2.text & "'," End If         ・         ・         ・ このやり方だと、sql文の最後にカンマが残ってしまいます。 ですが、前カンマをやったところで構文的におかしくなってしまいます。 このようなとき、どのように対処すればよいのでしょうか? よろしければ、教えてください。

  • 文章のルール

    次の例文の中で一番スマートな文はどれですか? ①私は、りんごやみかん、スイカ、いちごが好きだ。 ②私は、りんご、みかん、スイカやいちごが好きだ。 ③私は、りんご、みかん、スイカ、いちごが好きだ。 単語を並べるときのルールがあったような… 教えてください。

  • phpで複数の検索語を検索対象にしたい

    環境:php+mysql やりたいこと: 半角や全角スペースの入った複数の検索語を検索対象にしたいです。 例:りんご みかん で検索されたキーワード 現在のコードは以下のとおりです。。 長くなるので、検索結果数だけの処理までを書いてます。 $sql の箇所で for文など使って繰り返し処理をさせればよいのかと思い google先生で検索しましたが、、どうにも該当しそうなサイトが見つからず アドバイスいただきたく質問させていただきました。 単語1つの場合だけ検索結果が正しく動きますが、 現在は、検索フォームに「りんご みかん」と入れると 検索結果ゼロになります。 これはこれで正しいのですが、、 希望は「りんご みかん」と入れると りんごとみかんを含む検索をしてほしい と考えてます。 <?php $keywords = $_GET["key"]; //検索キーワードのデータが何件あるか? $sql="select * from item where title like '%".$keywords."%' or Description like '%".$keywords."%' or category like '%".$keywords."%' "; $datas = mysql_query($sql , $db ); $num = mysql_num_rows($datas); echo "検索結果は "."<span style=\"font-size:30px;\">".$num."</span>"."件です。<br>"; } ?>

    • ベストアンサー
    • PHP
クリーニングができません50
このQ&Aのポイント
  • 印刷時にインクがほとんど出ていないようなので、クリーニングをしましたが、印刷ができませんでした。プリンターの内部を確認したが、紙片などは見当たりません。
  • お使いのプリンター(DCP-J963N-B)は印刷時にインクがほとんど出ていない問題が発生しており、クリーニングをしても解決しない状況です。
  • Windows10のパソコンと有線LANで接続されている環境で、印刷時にエラーメッセージが表示されて印刷ができない状態です。
回答を見る