出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

完全一致検索をするには。。。   きっころさん [2006/01/26 16:27:20] [5615]
  Re:完全一致検索をするには。。。   Lightningさん [2006/01/26 16:40:49] [5616]
    Re:完全一致検索をするには。。。   きっころさん [2006/01/26 17:07:51] [5618]
      Re:完全一致検索をするには。。。   Lightningさん [2006/01/26 17:19:20] [5619]
  Re:完全一致検索をするには。。。   暇人さん [2006/01/26 17:45:05] [5620]
  Re:完全一致検索をするには。。。   ビギナーズラックさん [2006/01/26 20:11:37] [5621]
  Re:完全一致検索をするには。。。   きっころさん [2006/01/30 16:19:05] [5638]
    Re:完全一致検索をするには。。。   Lightningさん [2006/01/31 9:14:48] [5641]

[5615] 完全一致検索をするには。。。
投稿者:きっころさん 2006/01/26 16:27:20
例えば「BBB」という値を取得して、下記のように ”SQL=” でテーブル内の「AAA」と取得した「BBB」が同じ物を
表示するようにしたいのですが、”LIKE”を使うと”「BBB」を含む”ということになってしまいます。
自分がやりたいのは、完全一致検索なので、”LIKE”を使っては検索しなくていいものまで表示してしまい困っています。
”LIKE”以外に”=”を試しましたが数値は出来たのですが、文字列が上手くいきませんでした。
よくわからなくなってしまいましたので、教えていただけませんか?

BBB = Request.QueryString("XXX")

SQL = "SELECT * FROM data" & " WHERE (AAA LIKE '%" & BBB & "%')"

[5616] Re:完全一致検索をするには。。。
投稿者:Lightningさん 2006/01/26 16:40:49
文字列の時の”=”のSQLを提示してくださいな。
あと、AAAが数値型というオチは無しの方向でお願いします。

[5618] Re:完全一致検索をするには。。。
投稿者:きっころさん 2006/01/26 17:07:51
> 文字列の時の”=”のSQLを提示してくださいな。
> あと、AAAが数値型というオチは無しの方向でお願いします。

SQL = "SELECT * FROM data" & " WHERE (AAA = " & BBB & ")"

AAAはテキスト型です。

[5619] Re:完全一致検索をするには。。。
投稿者:Lightningさん 2006/01/26 17:19:20
> > 文字列の時の”=”のSQLを提示してくださいな。
> > あと、AAAが数値型というオチは無しの方向でお願いします。
>
> SQL = "SELECT * FROM data" & " WHERE (AAA = " & BBB & ")"
>
> AAAはテキスト型です。
まずは感想から・・・っていうか、やっぱり・・・

文字列型の場合は、文字列である、というようにシングルクォーテーションで包んでやる必要があります。
つまり
SQLだけ書くと
Select * From data where (AAA = 'hogehoge')
と言う感じです。
これをVBで代入する形にすると
SQL="Select * From data whete (AAA = '" & BBB & "')"
てな感じになります。
結構ミスするところなので赤丸要チェックです(古語

[5620] Re:完全一致検索をするには。。。
投稿者:暇人さん 2006/01/26 17:45:05
LightningさんがいってることでOKなわけですが
Likeで完全一致検索したいなら「%」はずせばいいだけじゃん

SQL = "SELECT * FROM data" & " WHERE (AAA LIKE '" & BBB & "')"

ただこれだと=で検索するより多少遅い。
・・・%の意味を考えようよ


[5621] Re:完全一致検索をするには。。。
投稿者:ビギナーズラックさん 2006/01/26 20:11:37
> SQL = "SELECT * FROM data" & " WHERE (AAA LIKE '%" & BBB & "%')"

ってかLIKEと=の使い方でしょうか?
部分一致の場合
AAA = '%" & BBB & "%'
っとは書かないからLIKEがあるってことかな〜
AAA LIKE '%" & BBB & "%'

ただ、完全一致の場合は、データ型を意識しない環境だと
AAA = '" & BBB & "'

AAA LIKE '" & BBB & "'
って同じ扱いになるのでは?

ようは暇人さんの言われるように%は何のためにつけてるの?ってこと考えたら
そんなに悩むことじゃなくなるかもですね〜


余談ですが、最近庭に錦鯉飼育用の20t池を掘ってまして
DIYなんで体ぼろぼろです(w

[5638] Re:完全一致検索をするには。。。
投稿者:きっころさん 2006/01/30 16:19:05
ありがとうございました。

出来るようになりました。

でも、%の意味ってどういうことなんでしょうか・・・
お恥ずかしいのですが、お教えいただけませんか?
お願いします。

[5641] Re:完全一致検索をするには。。。
投稿者:Lightningさん 2006/01/31 9:14:48
> ありがとうございました。
>
> 出来るようになりました。
おめ〜
> でも、%の意味ってどういうことなんでしょうか・・・
> お恥ずかしいのですが、お教えいただけませんか?
> お願いします。
簡単に言うと、この先は何でも良いフラグです。

aaaa%
だとaaaaで始まるもの
%aaaa
だとaaaaで終わるもの
だと言う感じ



TreeBBS For ASP V.0.1.3
Program By YasNet