こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ストアドプロシージャを使って検索がしたい

プログラミング初心者です。

テキストボックスに、グーグルとかみたいに、
○文字○ スペース ●文字●と入れて、検索ボタンをおすと、
○文字○と●文字●の両方の文字を含んだデータを表示したいと思っています。

ストアドプロシージャを使って、1つの文字列なら検索することは可能になったのですが、
スペースで区切った文字2つを使ってのAND検索をすることができなくて困っています。

以下は、1つの文字列のみ検索できるストアドプロシージャのです。



ALTER PROCEDURE [dbo].[対応依頼書文字列検索V99]

@strnvarchar(1000)

As

Create Table #tblIrai
(
IraiNoint

Primary Key(IraiNo)
)

Insert#tblIrai
Select依頼書No
Fromyamagata.dbo.対応依頼書基本情報
Where[依頼書No]Like '%' + @str + '%'
Or[依頼日]Like '%' + @str + '%'
Or[依頼部署]Like '%' + @str + '%'
Or[依頼者]Like '%' + @str + '%'
Or[作業希望日]Like '%' + @str + '%'
Or[作業希望日補足]Like '%' + @str + '%'
Or[区分]Like '%' + @str + '%'
Or[依頼種別]Like '%' + @str + '%'
Or[法人コード]Like '%' + @str + '%'
Or[会社コード]Like '%' + @str + '%'
Or[法人名称]Like '%' + @str + '%'
Or[システム/機器名]Like '%' + @str + '%'
Or[バージョン(品番)]Like '%' + @str + '%'
Or[受付日]Like '%' + @str + '%'
Or[受付者]Like '%' + @str + '%'
Or[作業開始日]Like '%' + @str + '%'
Or[作業終了日]Like '%' + @str + '%'
Or[作業時間]Like '%' + @str + '%'
Or[作業担当者]Like '%' + @str + '%'


複数の条件で検索する方法が全く浮かびません。
スペースで区切った条件で検索する場合は、事前に処理が必要なのでしょうか。

ご存知の方がいらっしゃいましたら、お手数ですが、ご教授いただけると助かります。

投稿日時 - 2014-05-26 16:08:29

QNo.8611560

困ってます

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

言語が書いてないので、Cで

scanf("%s %s",&str1,&str2);



Where[依頼書No]Like '%' + @str1 + '%'
And[依頼日]Like '%' + @str2 + '%'

とすればいいです。

ちなみにこれだけORをくっつけたら件数が増えると(数百件)時間がかかりますよ。

投稿日時 - 2014-05-26 16:24:29

補足

ご回答ありがとうございます。
言語書いてなくてすいません。

言語はサーバーサイドは、ASPのVBSで、クライアント側は、HTMLです。
検索部分は、テキストエリアにしています。
以下検索部分のソースです。

<form action = "kensakukekka.asp" method="POST">

<table border="1" cellspacing=0 cellpadding=4 class="sample_03">
<tr class="example">
<td style="width:300px; text-align:left; background-color: #00ff00;">
<b>検索内容入力</b>
</td>
<td>
<textarea name="kensa" style="width:100%" rows=1 class="textbox"></textarea>
</td>
<td>
<input type="submit" value="検索">
</td>
</tr>
</table>
</form>


検索ボタンを押すと、kensakukekka.aspに値を渡して、
ストアドプロシージャーにて、検索結果をかえします。

以下は、サーバーサイドのストアドプロシージャー部分のソースです。


'検索文字取得
skensa = Request.Form("kensa")

' データベース接続の確立
Set Conn = ConnectDB(DSN)



SQL ="EXEC 対応依頼書文字列検索V99 '" & skensa & "'"

Set Rs = ExecSql(Conn, SQL)




どうでしょうか。このやり方で、どこか追加したら、検索は可能でしょうか。

お手数ですが、ご存知でしたら、教えていただけると幸いです。

投稿日時 - 2014-05-26 16:57:45

お礼

maiko0318さんの回答を元に、自己解決できました。
ありがとうございました。

投稿日時 - 2014-05-27 16:58:32

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問