嗨,大家好像是可以在SQL中使用。
declare a as varchar(20)
set a = 'ID = 34 and ID = 22'
select * from something where ID = 1 and a
答案 0 :(得分:2)
您可以使用命令exec
- 将字符串连接到一个,然后运行该字符串的SQL查询。
所以在你的情况下,它将是:
declare @a varchar(20)
set @a = 'ID = 34 and ID = 22'
exec ('select * from something where ID = 1 and ' + @a)
请注意SQL注入。
答案 1 :(得分:2)
是的,您可以使用EXEC
declare @a as varchar(20)
set @a = 'ID = 34 and ID = 22'
EXEC ('select * from something where ID = 1 and ' + @a)
警告:由于SQL injection,这种类型的连接SQL查询存在安全风险。
答案 2 :(得分:1)
将它们放入表值(甚至是临时表)并加入它们。你甚至可以使用索引。 (虽然有一些值,索引可能不会有太多帮助!)
避免sql注入的所有可能的安全性并发症,并且通常更好。
DECLARE @ids TABLE (ID INT PRIMARY KEY)
INSERT @ids VALUES (1),(2)
SELECT s.*
FROM
someTable AS s
JOIN @ids AS i ON i.ID = s.ID
检查用户定义的表类型,以便更好地将列表传递给存储过程。
另请查看此页面,了解权威对此类问题的回答:http://www.sommarskog.se/arrays-in-sql.html