如何將名稱列表傳遞給SQL參數,以便我可以執行WHERE IN(@myList)?使用列表輸入構建SQL存儲過程查詢
我正在爲我們的網頁進行「高級搜索」,用戶可以列出它們的列表,用逗號分隔,他們希望找到幾個輸入內容。例如,可能有5個輸入(名字,帳號,姓氏,...),並且對於每個輸入,他們可以列出幾個並用逗號分隔它們。
我到目前爲止的做法是爲每個輸入採用此字符串,並對其進行格式化,以便可以對該字符串使用「IN」子句。這可能嗎?
IE爲「名」用戶輸入「鮑勃,喬,佛瑞德」,我想變換輸入到
"'Bob', 'Joe', 'Fred'"
,然後發送作爲參數的存儲過程。
Declare @firstNames
Select * from Users
where User.FirstName in firstNames
或者我應該把所有這些名稱放入C#中的DataTable中並將其傳遞給SQL?如果我應該走這條路線,一些例子會有很大幫助!
謝謝!
您沒有提及您正在使用哪個SQL數據庫,但是如果它是MS SQL Server,那麼[SQL Server中的數組和列表] (http://www.sommarskog.se/arrays-in-sql.html)有很多有用的信息。 –
添加標籤。我會閱讀你的鏈接。 – Dave