请访问http://www.stumbleupon.com/
它问你感兴趣的是什么。
我的网站上会有类似的东西,除了我需要有4个不相同的块。当用户未在部分中选择任何内容时,表示他/她已选择所有部分。其中1个块将有大约10个选项,而其他3个块将有2-3个选项。
如何将用户选择的内容传递给SQL Server 2008?请注意我将有4组多个参数,这4组基本上是4行不同的列,所有列都包含整数id。当且仅当每个部分传递一个参数时,我会做类似
的事情从表中选择*,其中column1 = @ param1,column2 = @ param2,等等。
但事实并非如此,因为用户可以为@ param1传递多个值,依此类推。
我可以完成这项工作,但我想知道最有效的方法。
如果我的帖子不清楚,请告诉我。
编辑: 基本上,如果我在数据库中存储文章,我在行中有4列,每个整数。我想基于这4列查询这些文章,但问题是传递这些列的多个值而不是每列一个值。
答案 0 :(得分:1)
如果您的客户端语言支持它,您应该查看表值参数:
http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters
如果你不能使用它们,请查看TSQL中的数组和列表中的一个:
http://www.sommarskog.se/arrays-in-sql.html
这是TSQL中非常全面的动态搜索条件列表:
http://www.sommarskog.se/dyn-search.html
这也可能有所帮助:
Sane/fast method to pass variable parameter lists to SqlServer2008 stored procedure
答案 1 :(得分:0)
尝试将所有参数值转储到XML中,然后将其传递给SQL Server,然后在查询中解析它。
答案 2 :(得分:0)
在这种情况下,这样的查询不会起作用吗?
SELECT *
FROM TABLE
WHERE COLUMN1 IN ( @param11, @param12, @param13 )
AND COLUMN2 IN ( @param21, @param22, @param23 )
等等。