- 締切済み
あいまい検索のパフォーマンス向上について
mas_samaの回答
- mas_sama
- ベストアンサー率50% (2/4)
No1の回答の者です。 改めて質問の先頭を見たらOracleと記述が・・・w ならば、是非実行計画でSQLを比較してみてください。 時間さえかけてよければ、プログラマーとしては 楽しい作業(のハズ)ですよ。
関連するQ&A
- sjisでのあいまい検索を教えてください
Postgres8です。 データベースのエンコーディングは【SQL_ASCII】です。 LIKE検索をした場合のSJISの文字化けに対する対処方法を教えてください あいまい検索をしたいのですが、 文字化け対象文字を含む場合、 どのように記述すればいいのですか? select * from aaa where name = 'パソ\コン'; 上記のように完全一致で検索をすると抽出できます。 select * from aaa where name like '%パソ%' 上記のよう指定してlike検索をしても抽出できます。 しかし以下の場合どちらでも抽出できません。 select * from aaa where name like '%パソコ%' select * from aaa where name like '%パソ\コ%' よろしくお願い致します。
- 締切済み
- PostgreSQL
- ワイルドカードの検索
項目に'%'が入力されているデータを抽出したいのですが、 以下のようなSQLだとデータがすべて抽出されていまいます。 SELECT * FROM t_table WHERE code_name LIKE '%%%' '%'を検索するにはどうのようにすればいいのでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- 文字検索 (LIKE)を使った場合
テーブル「USERS」の項目「FAMILY_NAME」「FIRST_NAME」をつなげた文字列に対して検索を行ないたいのですが、以下の「LIKE」を使ったSQL分ではカラムがないとエラーになるようです。 方法があれば教えて下さい。 よろしくお願いします。 テーブル:USERS 項目: FAMILY_NAME FIRST_NAME 値: 三木 直人 中川 三郎 SELECT CONCAT(FAMILY_NAME,FIRST_NAME) AS USER_NAME FROM USERS WHERE USER_NAME LIKE '%三%'
- ベストアンサー
- MySQL
- MYSQLで全てのカラムから検索する。
tbというテーブルのbangというカラムに4が含まれていれば表示というのは select * from tb where (bang) like '%4%' ; という形になりますが、このtbテーブルにさらにname,tukiというカラムがあったとして カラムに関係なくレコードのどこかに4が入っていれば抽出するというSQL文が書きたいです。 select * from tb where bang like '%4%' or name like '%4%' or tuki like '%4%' ; と書くことで何とか今まではやってきたのですが、カラム数が増えてきてしまったので、ものすごく長いSQL文なってしまいました。 もう少しスマートにする方法はありませんか?
- ベストアンサー
- MySQL
- PHPからのLIKE検索ができません。
こんばんわ。お世話になります。 PHPからSQLを発行してLIKE検索をしようとしているのですがうまくいきません。(Xampp MySQL) $keyword = htmlspecialchars($_POST['keyword']); mysql_real_escape_string($keyword); $sql = "select * from master where name like '%{$keyword}%'"; テーブル内の name にマッチするはずの言葉があるのにマッチしません。 ちなみに echo $sql; とSQL文を表示させてPhpMyAdminでそれを実行すると、目的の検索結果が表示されます。 いろいろ検索してみたところ、LikeをLike Binary にする方法などがありましたが、どうにもうまくいきませんでした。文字コードはフォーム側、PHP・SQLともにUTF-8です。 '%{$keyword}%'あたりの書き方が悪いのでしょうか。 お手数おかけいたしますがアドバイスの程お願いいたします。
- ベストアンサー
- MySQL
- 複数条件での検索について教えてください
PHPとMySQLで構築するという内容の参考書2冊を読んだ程度の知識レベルです。しばらくPHPと離れていたので、さらに退化しているかもしれません。。。 環境はWindowsXP、PHP4.3.2.2です。 ぜひ、皆さんの知恵をお借りできればと思い、質問をさせていただきます。 DBには 発売日(outday) お菓子名(name) 発売店(shop) などが入っております。 発売日やお菓子名、発売店など1つ~3つの条件で検索することが目的です。 例えば、お菓子名のみの検索をしようとして、 HTMLフォーム <INPUT size="44" type="text" name="name" maxlength="100"> ↑に検索したいお菓子名を記入して、 $sql="select * from okashi where (name like '%$name%') order by outday; ↑でnameのデータを受けとって、欲しいお菓子データを取り出すことはできたのですが、 ↓のように <INPUT size="44" type="text" name="shop" maxlength="100">; <INPUT size="44" type="text" name="name" maxlength="100">; フォームを2つ作り $sql = "select * from okashi where (shop like '$%shop%') and (name like '%$name%')by outday; ↑のように2つ以上の検索条件が重なると、 「0件」みつかりました。と検索が出来なくなってしまいます。 検索条件は、検索項目が1つでも2つでも同じ同一です。 本に書いてあるまま、名前を換えて動かしているつもりなのですが、 どこが間違っているか本当に分かりません。 文字制限で全体を載せることができず、はしょってしまいましたが、 わからない点がありましたらおっしゃってください。 お忙しい中恐れ入りますが、ぜひ皆さんのお知恵をお借りしたいのです。 よろしくお願いします。
- ベストアンサー
- PHP
- Select文のパフォーマンスについて
Select文のパフォーマンスについて質問です。 (1)select * from table1 where col1='00001' and kbn in (1,2,3,4) (2)select * from table1 where col1='00001' and (kbn = 1 or kbn = 2 or kbn = 3 or kbn = 4) (1)と(2)ではどちらがパフォーマンスがよいのでしょうか? SQLServer2008
- ベストアンサー
- SQL Server
- 大文字/小文字の区別しないで検索したい場合
データベース:ORACLE9i いつもお世話になっています♪ いきなり質問ですが、 例えばこういうデータがテーブルに 入っているとします。 ID NAME ----------- 1 AAA1 2 BBB2 3 CCC3 ----------- そこで下記のSQLを実行するとBBB2はヒットしません。 select * from test_tbl where name like '%b%'; 大文字/小文字を区別しないで検索する方法はないでしょうか? よろしくお願いします♪
- ベストアンサー
- Oracle
- インデックスを使用して・・・
おはようございます。 SQLServerのテーブルに格納された情報が多いので インデックスを用いて検索処理を早めたいと考えました。 ---テーブル構成-------------- name / varchar address / varchar age / int ---------------------------- name,addressフィールドにインデックスを指定したのですが、 インデックスを指定することにより検索するSQL文に なにか特別な書き方をしなくてはいけないのでしょうか? select name, address, age from test_table; ってSQLを記述しただけでは、 インデックスを作成する前と後では意味はないのでしょうか? 宜しくお願い致します。m(_ _)m
- 締切済み
- その他(データベース)