- ベストアンサー
REGEXPを使った検索文をスマートにできますか
- REGEXPを使用して特定の単語を含むタイトルを検索するSQL文をスマートにする方法があるかどうかについて質問しています。現在のコードには問題はありませんが、より短く効率的な方法があれば知りたいとしています。
- 現在はREGEXPを使用して単語ごとにタイトルを検索しているが、これが最適な方法かどうか疑問に思っている。もしスマートな方法があれば教えてほしいとしている。
- REGEXPを使用したタイトル検索のSQL文が長くなることに疑問を持っており、より短く効率的な方法があるかどうかを尋ねている。
- みんなの回答 (2)
- 専門家の回答
関連する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の部分は、正規表現的に問題があるので、見直そうと考えています。
- ベストアンサー
- SQL Server
- 複数の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文の最後にカンマが残ってしまいます。 ですが、前カンマをやったところで構文的におかしくなってしまいます。 このようなとき、どのように対処すればよいのでしょうか? よろしければ、教えてください。
- ベストアンサー
- Visual Basic
- 文章のルール
次の例文の中で一番スマートな文はどれですか? ①私は、りんごやみかん、スイカ、いちごが好きだ。 ②私は、りんご、みかん、スイカやいちごが好きだ。 ③私は、りんご、みかん、スイカ、いちごが好きだ。 単語を並べるときのルールがあったような… 教えてください。
- ベストアンサー
- 日本語・現代文・国語
- 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
- 印刷時にインクがほとんど出ていないようなので、クリーニングをしましたが、印刷ができませんでした。プリンターの内部を確認したが、紙片などは見当たりません。
- お使いのプリンター(DCP-J963N-B)は印刷時にインクがほとんど出ていない問題が発生しており、クリーニングをしても解決しない状況です。
- Windows10のパソコンと有線LANで接続されている環境で、印刷時にエラーメッセージが表示されて印刷ができない状態です。
お礼
こんな省略の仕方あったんですね!! 早速できました!! ありがとうございます、スッキリです!!