0
我試圖將可變數量的數字傳遞給存儲過程以限制其輸出。假設我有6個部門,編號分別爲1,2,3,4,5,6。我希望用戶輸入各種數字。所以他們可能會選擇1,3,6或者2,4或者3,或者他們想看的任何東西。這可以像存儲過程的WHERE子句中的變量一樣傳遞給IN語句嗎?如果不是,那麼可以怎麼做呢?我想盡可能保持簡單。謝謝!將變量傳遞給SQL語句中的IN語句存儲過程
我試圖將可變數量的數字傳遞給存儲過程以限制其輸出。假設我有6個部門,編號分別爲1,2,3,4,5,6。我希望用戶輸入各種數字。所以他們可能會選擇1,3,6或者2,4或者3,或者他們想看的任何東西。這可以像存儲過程的WHERE子句中的變量一樣傳遞給IN語句嗎?如果不是,那麼可以怎麼做呢?我想盡可能保持簡單。謝謝!將變量傳遞給SQL語句中的IN語句存儲過程
將值數組傳遞給存儲過程的通用且健壯的SQL方法需要多個語句。
您可能需要附上這些語句放入交易。
佔位符只能表示SINGLE值。您無法在一個佔位符中傳遞多個值,例如'where where foo IN(?)'並傳入'1,2,3'將被執行,就像它被寫入'WHERE foo ='1,2,3''一樣。當你有任意數量的佔位符時,你不能使用「預先」準備好的語句。您必須使用盡可能多的佔位符動態構建您的查詢字符串,然後使用1:1映射傳遞它們。 –
一種選擇是將逗號分隔的數字串轉換爲臨時表,然後在查詢中連接或以其他方式使用該臨時表。一種方法:http://www.codeproject.com/Tips/584680/Using-comma-separated-value-parameter-strings-in-S –
什麼是您的DBMS? – Serg