0

在过去的 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 服务器中要求我传递column1column2的值。我想通过传递任何一列来进行哪些更改以获得结果?

请帮助我解决这个问题。

4

4 回答 4

0
  select * from table where where col1 like '%' + @test + '%'
于 2013-08-30T15:45:29.183 回答
0
select * from table where column like '%' + @variable +'%'

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

于 2013-08-30T15:43:04.773 回答
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 回答
0

SQL parameters在客户端/UI 端使用:

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

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

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

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

于 2013-08-30T16:03:17.853 回答