过去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 的值。我希望通过传递任何一个列来获得结果?
请帮助我解决这个问题。
答案 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 + '%'
我的测试就是这个。
我的桌子
我的结果
程序就像这样
--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
对象