あいまい検索の方法

解決


えいりあん2  2003-10-23 01:41:43  No: 109342

Sarchi = "select * From 送付先マスタ Where 会社名 ='" & Text15 & "' OR 漢字氏名 ='" & Text16 & "'"

抽出にLIKEをいれると頭の文字だけ入力で抽出できると聞いたのですが
上記のどこにいれればよいのですか?
あと数字項目と文字項目を同時に抽出しようとするとデータの型が違います
となりますが同時にはできないのでしょうか?


魔界の仮面弁士  2003-10-23 04:09:04  No: 109343

# 「Sarchi」→「Search」の意味かな?

> 抽出にLIKEをいれると頭の文字だけ入力で抽出できると聞いたのですが

実行させる条件が、例えば
   WHERE 会社名 = 'Microsoft'
になっているとして、これを
   WHERE 会社名 LIKE 'M%'
とすれば、Mで始まる会社名全てがヒットします。

なお、LIKEは「文字列型」に対する検索で利用されます。(数値型列には使いません)

それと、データベースによって、LIKEで使える『ワイルドカード』が
異なりますので、その点は注意してください。

例えばOracle, SQL Serverの場合は、『_』が「任意の1文字」を表し、
『%』が「0文字以上の任意の文字列」を意味します。

一方Jetの場合は、クエリモードがANSI SQL 92の時は上記と同様ですが、
ANSI SQL 89を利用する場合は、『?』が「任意の1文字」を表し、
『*』が「0文字以上の任意の文字列」を意味する事になります。
(Jetの場合はさらに、『#』『[』『]』などを使った表現もサポートされています)

> データの型が違いますとなりますが同時にはできないのでしょうか?
抽出条件の指定が間違っていないか、確認してみてください。文字列型の列の場合は、
   WHERE 電話番号 = '012-345-6789'
のように、両端を『'』で囲む必要がありますが、数値型列では、
   WHERE 年齢 = 71
のように、両端を『'』で囲まずに指定する事になります。

もし、
   WHERE 電話番号 = '012-345-6789' OR 年齢 = 71
と書くべき所を、
   WHERE 電話番号 = '012-345-6789' OR 年齢 = '71'
のように書いてしまうと、データベースによっては、『型が違います』という
エラーを返してくる事がありますので、指定内容をよく確認してみてください。
(ただしデータベースによっては、「'」が付いていてもエラーとならず、そのまま処理される物もあります)


えいりあん2  2003-10-23 19:16:30  No: 109344

魔界の仮面弁士さん丁寧な説明ありがとうございます。
抽出でSearch = "select * From 送付先マスタ Where 会社名  LIKE 'Text15%' "
としましたが結果該当なしになってしまいます。
これはなんででしょうか?


えいりあん2  2003-10-23 19:46:59  No: 109345

できました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加