我想在我的ASP.NET网站项目中执行小型SQL服务器搜索,我的数据库不大,所以我认为最好不要使用全文搜索 我想执行这样一个简单的搜索:
select * from mytable where columnA LIKE '%something%'
我可以通过以下方式使用=:
select * from mytable where columnA='"+myVariable+"'
但是如何在LIKE短语中使用变量而不是%something%
?
这是对的吗? LIKE '"+%myVariable%+"'
???
我使用VS2010,C#
感谢
答案 0 :(得分:10)
使用:
where columnA LIKE '%' + myVariable + '%'
答案 1 :(得分:8)
WHERE
columnName LIKE '%' + myVarCharVariable +'%'
答案 2 :(得分:5)
尝试此查询:
select * from tablename where colname like '%' + @varname + '%'
希望它有所帮助。
答案 3 :(得分:4)
我刚试过这个,发现你可以这样做:
SELECT * FROM whatever WHERE column LIKE '%'+@var+'%'
答案 4 :(得分:1)
DECLARE @myVariable varchar(MAX)
SET @myVariable = 'WhatYouAreLookingFor'
SELECT * FROM mytable
WHERE columnA LIKE '%' + @myVariable + '%'
答案 5 :(得分:1)
如果其他人像我一样偶然发现这个帖子。在带有SQL 2012 Server后端的SSMS 2012上,我能够使用以下代码而不会出现问题。
var precalc = [];
var bar = chart.selectAll("g").data(data)
.enter().append("g")
.each(function(d,i) { precalc[i] = calculateValue(d)})
.attr("width", function(d,i) {return precalc[i]+1})
.attr("height", function(d,i) {return precalc[i]*2});
然后,每次要更改Desired String时,只需在Set语句中更改它。
我知道这篇文章是在2012年之前发布的,这就是为什么我提到它以防有人使用更新的设置来查找这篇文章。
答案 6 :(得分:0)
你可以这样做:
var query = "SELECT * FROM MyTable WHERE columnA LIKE '%" + myVariable + "%'";
答案 7 :(得分:0)
如果您担心sql注入,请尝试这样的操作。它比较复杂,但是可以正常工作并且应该满足安全性要求。假设有人使用名为“ @searchstring”的参数将值传递到您的存储过程中。
DECLARE @searchString nvarchar(100) = 'test',
@SQL nvarchar(max),
@foundSearchHit bit,
@paramdef nvarchar(max) = '@foundSearchHit bit OUTPUT'
SET @searchstring = '%' + @searchString + '%'
SET @SQL = '
SELECT TOP 1 @foundSearchHit = 1
FROM sys.databases WHERE [name] like ' +
QUOTENAME(@searchString,'''')
EXEC sp_executeSQL @SQL, @paramdef, @foundSearchHit = @foundSearchHit OUTPUT
SELECT @foundSearchHit
应该可以解决问题。