• ベストアンサー

like演算子の使い方

VB.Netとアクセス2002でデータベースを作っています like演算子により、○○と文字を含むレコードを抽出したいのですが、うまくいきません。 初心者なので、やさしくおしえてください! お願いします。

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

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

確かにどのようなSQLを発行してどう抽出されているかを書いていただくと、説明しやすいですね。w 一応基本を簡単に書いておきます。 ■ パターンマッチングのLIKE演算子 ■ アクセスのLIKE演算子は「*」「?」を合わせて使用します。 この場合、任意の文字列をマッチングする場合は、*を、 任意の文字数をマッチングする場合は、?を使用します。 次のテーブル(MUSG)があります。 フィールドはコード(CODE)と名前(NAME)とします。 CODE NAME 1 うさぎ 2  デブうさぎ 3  うさぎ耳 4  かうさぎ ■ 任意の文字列に対するマッチング 1. SELECT NAME FROM MUSG WHERE NAME LIKE '*うさぎ'    ⇒ うさぎ      デブうさぎ      かうさぎ  うさぎで終わる文字列を検索  うさぎで終わっていれば、頭に何文字の文字列が付いていても抽出される(0文字でも) 2. SELECT NAME FROM MUSG WHERE NAME LIKE 'うさぎ*'    ⇒ うさぎ      うさぎ耳  うさぎで始まる文字列を検索  うさぎで始まっていれば、尻に何文字の文字列が付いていても抽出される(0文字でも) 3. SELECT NAME FROM MUSG WHERE NAME LIKE '*うさぎ*'    ⇒ うさぎ      デブうさぎ      うさぎ耳      かうさぎ  うさぎが含まれる文字列を検索  うさぎが含まれていれば、頭と尻に何文字の文字列が付いていても抽出される(0文字でも) ■ 任意の文字数に対するマッチング 1. SELECT NAME FROM MUSG WHERE NAME LIKE '?うさぎ'    ⇒ かうさぎ  うさぎで終わる文字列を検索  うさぎで終わってて、頭に1文字(?の個数)が付いているものが抽出される 2. SELECT NAME FROM MUSG WHERE NAME LIKE '??うさぎ*'    ⇒ デブうさぎ  うさぎで終わる文字列を検索  うさぎで終わってて、頭に2文字(?の個数)が付いているものが抽出される

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>うまくいきません。 実例を挙げるべきでしょう。 実例1行、したいこと(文章)1行で済むものをどうして 上げないのですか。 どうせ、前後やカッコやスペース1個が問題(指摘)になる細かい世界でしょうから。

関連するQ&A

  • Delphi Like 演算子

    MS Access VBA のLike 演算子みたいなものは、Delphiにないでしょうか? 2 つの文字列の比較を行なう演算子です。 例えば s1:='中野'; s2:='東京都中野区'; if s1 like s2 then flg=true; s2の文字列のなかにs1が含まれていることを判断する演算子ですが・・・

  • ORACLEのLIKE演算子について

    いつも拝見させて頂いております。 ORACLEのLIKE演算子についての質問です。ある抽出条件 をシステムで作成して、その抽出条件を元にNOTで括って正反対 の抽出条件を作成したいと思っています。しかし抽出条件の中にL IKE演算子が含まれていて、パターンマッチングの抽出条件が存 在する場合にNOTで括って正反対の抽出条件を作成すると、NU LLのデータが含まれなくなってしまい、正しい結果が得られませ ん。LIKE演算子はNOT演算子を付加するとNULLデータは 抽出できないものなのでしょうか。ご存じの方がいらっしゃいまし たらご教授頂けないでしょうか。宜しくお願い致します。 WHERE NOT ( 抽出条件 ) ↑このような感じ

  • ACCESS2000でLike演算子

    ACCESS2000で開発しています。 とあるフォーム(これにはレコードソース:SELECT…を記述しています) をDocmd.Openで開く時にWhereConditionを設定しています。 このWhereConditionには、 (A条件) AND (B条件) AND (C条件) AND フィールド名 Like 'XX*' といった内容を書いているのですが、正常に抽出できません。 (A条件) AND (B条件) AND (C条件) までですと抽出できるのですが、Like演算子を使った条件を加えると 0件になってしまいます。 どこが悪いのか全くわかりません。 ちなみに全てのSQL文をクエリのSQLにコピーすると成功します。 ご存知の方、よろしくお願いします。

  • SQL LIKE演算子 抽出できない

    VB6でAccess2003のテーブルから情報を抽出したいと思っています。 「東京都千代田区」、「東京都新宿区」と入力するとそれらに該当 するレコードが全て抽出されてきます。しかし「東京都」だけ入力して 「東京都」から始まるレコードを全て抽出しようと「%」を使用して書換えました所、なにも抽出できなくなりました。 Set DB = OpenDatabase("c:\SalesManager\jdb.mdb") strSQL = "SELECT * FROM t_USER " strSQL = strSQL & "WHERE KOKYAKUMEI LIKE "   strSQL = strSQL & "'" & "%" & txtUser.Text & "%" & "'" 初歩的な質問で申し訳ございませんが、ご教授頂きたく思います。 よろしくお願いします。 「%」を使用しなかった時のコード strSQL = strSQL & "'" & txtUser.Text & "'"

  • VBA like演算子について

    VBA like演算子について 下記コードで”パターン文字列が不正です”とエラーで止まってしまいます。 For n = 3 To 89 If n Like "[5-7]" Then GoTo Skip_Line・・・・(1) If n Like "[39-70]" Then GoTo Skip_Line・・・(2)     処理・・・・・ Skip_Line: Next n nは行数で5-7行目と39-70行目を処理せずに飛ばそうとしています。 (1)はうまくいくのですが(2)の方で”パターン文字列が不正です”とエラーで止まってしまいます。 どなたかお知恵をおかしい頂ければ幸いです。

  • インデックスとLIKE演算

    MySQLを勉強中です。 バージョン:5.x(詳しくはわかりません) エンジン:InnoDB インデックスを指定したカラムに対してLIKE演算"%検索文字%"を実行するとシーケンシャルに検索を行うと聞きましたが、何か回避する方法等はありませんでしょうか? ※インデックスを指定したカラムの型はchar(255)で、日本語(UTF-8)も含まれます。

    • ベストアンサー
    • MySQL
  • VBAのLike演算子で、

    こんにちは。いつもお世話になっております。 VBAのLike演算子で、 日本語・アルファベット・数字が混ざっている文字列について、 アルファベット・数字のみを選択したいとき、 次のようなことを考えました。 j = 0 Do While Rng.Characters(j) Like "[!a-zA-Z0-9]" Rng.Start = Rng.Start + 1 j = j + 1 Loop しかし、実行してみると、 「指定されたコレクションのメンバは存在しません」 というエラーが返されてしまいます。 私の知識不足かと思いますが、 原因をご存じでしたら、教えていただきたいと思います。

  • Access2003 式ビルダでのLikeについて教えてください

    Acccess初挑戦の状態で困っております。 例えばデータベース内の名前で「山」の文字が含まれる名前を抽出させたい場合、「クエリの抽出条件でLike "*山*"」とすることで抽出できるのはわかるのですが、フォームでマクロの式ビルダを用いて同様の抽出を行いたいのです。 「顧客データ」のテーブルにある「お客様名」のフィールドから、「検索フォーム」の「名前検索」に入力されたキーワードを含むものを抽出させるために、以下の用に式ビルダで作成したのですが、 [顧客データ]![お客様名]=[Forms]![検索フォーム]![名前検索] 完全に一致する場合しか抽出してくれません。 データベース内に「山田 太郎」の名前があったとして検索フォームで「山田 太郎」と入力すると抽出されます。これを「山」と入力しただけで「山田 太郎」が抽出されるようにしたいのです。 Likeの演算子を用いてアスタリスクを使用すれば、できるのかなとは思うのですが、式ビルダへの記述方法がわかりません。 アドバイス頂ければ助かります。

  • 2つのテーブルをLIKE演算子のように結合させたい

    こんにちは DB2 ver 8.1 fixPak5 VB6 にて開発を行っております。 TABLEa の NAMAEa KANKEIa TABLEb の ADANAb FLAG というテーブルがあるとします そしてそれぞれのテーブルに TABLEa のNAMAEa に '山田' TABLEb のADANAb に '山' というデータがはいっていたとき この2つのデータをLIKE演算子のように結合させたいのですが、どのようにしたらいいのでしょうか。 イメージとしては SELECT NAMAEa, KANKEIa, FLAG FROM TABLEa LEFT OUTER JOIN TABLEb ON NAMAEa LIKE ADANAb% 伝わるでしょうか・・・ できたら1つのSQL文で完結させたいです。 駄目だったらRecordSetにもたせて処理しようかと思いますが、 今後の為にも何か方法があるのでしたら教えてください。

  • LIKEのスペースの取扱い

    今Acsessに 2, 3, 16, 17, 25, ・・・ と言った風に 数字+コンマ+スペース・・・ と言ったランダムな数字の列が格納されています. この文字列に任意の数字が含まれていた場合 レコードを抽出した意のですが、 LIKE '%数字,%'としたところ 数字が1の時21や31も抽出されてしまい困っています. 例のような文字列の中にある数字を 桁に依存しないように抽出する方法はないでしょうか? お力添えをお願いいたします.

専門家に質問してみよう