- - PR -
SQL文にて配列を検索する方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-03 15:17
>>きくちゃんさん
ご返答ありがとうございます。 >とりあえず「For ループ」について調べてみて下さい。 これはvb.netのForループでしょうか。 最初の処理で付け加えるのを忘れてましたが、 searchWord()配列には検索する文字列が入るのですが、 テキストボックスに検索したい文字列を入力して(一人目 二人目など) 空白を区切りにand検索する処理なんです。 なのでvb.net側でForループで一個ずつ調べるとしても意味がないんです。 | ||||
|
投稿日時: 2005-06-03 15:27
テキストボックスに「一人目 二人目 三人目」 と入力したら
searchWord(0) に"一人目" searchWord(1) に"二人目" ...という感じですか? きくちゃん氏の仰る通り、forループで配列要素を取り出してSQL文の文字列を 作ってOleDbCommandのコンストラクタに渡すってことで何も問題ないと思いますが... _________________ # Future Is On Fire ! | ||||
|
投稿日時: 2005-06-03 16:06
ちょっと落ち着いて考えましょう。矛盾点わかりますか? この通りに書けば、 「一人目」かつ「二人目」かつ「三人目」... ということで、何が抽出されるのでしょうか?(「○人目」という意味に もよりますが) それと回答いただいているForループというのは、SQLの発行をループで という意味では無く、SQL文を作成するところでForループを使うという ことですよ。 Joinが使えるならJoinでも良いので、Where句を フィールド名 = ○○○ or フィールド名 = ○○△ or ... または フィールド名 = ○○○ and フィールド名 = ○○△ and ... のようなWhere以下の文字列を作れば良いわけです。 「一人目」というのがその通りの意味(抽出したレコードの先頭とか)なら 少し違いますけどね。 | ||||
|
投稿日時: 2005-06-03 16:29
名前 LIKE '%一人目%' AND 名前 LIKE '%二人目%' AND 名前 LIKE '%三人目%' (以下略)
という検索をしたい意図のようなので、別に矛盾はないと思います>Beatle氏 _________________ # Future Is On Fire ! | ||||
|
投稿日時: 2005-06-03 16:54
たくさんのご返答ありがとうございます。
Forループというのは Dim roopstr as String dim i as integer=0 for i = 0 to searchWord.length roopstr+="LIKE " & "'%" & searchWord(i) & "%'" next のようにしてループさせるということなのでしょうか・・・ SQL文をもう一度勉強してこようと思います・・・ | ||||
|
投稿日時: 2005-06-03 19:45
ん〜、SQLとしてはそうなんですが、これで引っかかるのは名前が 「hoge一人目hoge二人目hoge三人目hoge」 のような人? | ||||
|
投稿日時: 2005-06-04 00:34
For文でstr+=tablename & " LIKE " & "'%" & searchword(i) & "%' AND"
のようにしてwhere以下の文を作る事ができました。 このようなやり方もあったんですね・・・。 しっかりと勉強してきます。 >>Beatleさん 名前 LIKE '%何人目%'ってのは例えで、実際の処理は違う内容なんです。 たしかに名前が1人目かつ二人目とかありえないですね・・・ |