如何通过?在SQL查询中进行部分搜索

时间:2013-08-30 15:40:00

标签: java sql sql-server

过去1天我正在使用sql查询。我的要求是我想从用户那里获取值并且必须通过我的查询

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

但是当我们从客户端或UI端传递变量时如何使用相同的查询?

我尝试使用?,@。,如下所示

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

但没有任何效果。我面临的另一个问题是使用OR运算符。

当我使用搜索条件时,我想通过给任何一个字段赋值来显示结果。但是在sql中它要求我传递的所有列。

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

但是在上面的SQL服务器中要求我传递 column1 column2 的值。我希望通过传递任何一个列来获得结果?

请帮助我解决这个问题。

4 个答案:

答案 0 :(得分:0)

select * from table where column like '%' + @variable +'%'

还要在代码中将相同的变量作为参数添加到命令中。

答案 1 :(得分:0)

  select * from table where where col1 like '%' + @test + '%'

答案 2 :(得分: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 + '%'

我的测试就是这个。

我的桌子

My Table

我的结果

My Result

程序就像这样

--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
像这样的

中的

  String prName ="call "Pr_Test(?, ?)"
    .....
    cs.setString(1, "healt")

答案 3 :(得分:0)

在客户端/用户界面使用SQL parameters

在您的C#或其他代码中创建SqlParameter

String searchValue = "test values";
// adding '&' signs
searchValue = String.Format("%{0}%", searchValue);

SqlParameter sqlParam = new SqlParameter("@YourParam", searchValue);

在此之后将此参数添加到SqlCommand对象