0

過去1日間、SQLクエリと戦っています。私の要件は、ユーザーから値を取得し、クエリを渡す必要があるようなものです

select * from table1 where column1 like '%healt%'

しかし、クライアント側または UI 側から変数を渡すときに同じクエリを使用するにはどうすればよいでしょうか?

以下のように、?,@. を使用してクエリを試しました。

select * from table where column like '%' ?'%'

しかし、何も機能しませんでした。私が直面しているもう 1 つの問題は、OR 演算子の使用です。

検索条件を使用する場合、フィールドのいずれかに値を指定して結果を表示したいと考えています。しかし、SQLでは、私が渡しているすべての列を求めています。

select * from table1 where column1 like ? OR cloumn2 like ?

しかし、上記の SQL サーバーでは、 column1column2の両方の値を渡すように求められています。列のいずれかを渡して結果を取得するために、どのような変更を加えたいですか?

この問題を解決するのを手伝ってください。

4

4 に答える 4

0
Declare @yourParam1 varchar(20), @yourParam2 varchar(20)

set @yourParam1 = 'healt'
set @yourParam2 = 'abc'

select * from table where column1 like '%' + @yourParam + '%'
or column2 like '%' + @yourParam2 + '%'

私のテストはこれです。

私のテーブル

マイテーブル

私の結果

私の結果

手順はこんな感じ

--exec Pr_Test 'healt' --this is your execute SQL

ALTER PROCEDURE [dbo].[Pr_Test]
      @yourParam varchar(20),

AS
BEGIN
   select * from table where column like '%' + @yourParam + '%'    
END

このようなJavaで

  String prName ="call "Pr_Test(?, ?)"
    .....
    cs.setString(1, "healt")
于 2013-08-30T15:50:52.443 に答える