我有一個複雜的SELECT
查詢過濾時間範圍,我希望這個時間範圍(開始和結束日期)可以使用用戶提供的參數指定。所以我可以使用存儲過程來做到這一點,而返回是一個多行結果集。我遇到的問題是如何處理這個結果集。我不能這樣做:從存儲過程中選擇數據
SELECT * FROM (CALL stored_procedure(start_time, end_time))
即使存儲過程只是一個SELECT
是需要的參數。服務器端準備好的語句也不起作用(並且它們也不是持久的)。有些人建議使用臨時表;這不是一個理想的解決方案的原因是:1)我不想指定表模式,似乎你必須,2)臨時表的生命週期只限於調用查詢,它除此之外不需要堅持。
因此,我想要一個類似於持久預備語句服務器端的東西,它的返回值是MySQL可以像操作子查詢一樣操作的結果集。有任何想法嗎?謝謝。
順便說一句,我使用MySQL 5.0。我知道這是一個非常老的版本,但是這個功能似乎並不存在於任何更新的版本中。我不確定是否可以在其他SQL引擎中使用存儲過程進行SELECT;切換不是目前的選擇,但我想知道是否有可能,以防我們決定在未來切換。
由於無法像存儲過程那樣調用存儲過程,因此您的情況可能會使用視圖嗎? – DTest 2010-12-20 22:54:55
視圖不起作用的原因是因爲我希望子查詢獲取參數,而在視圖中需要設置整個查詢。 – 2010-12-21 20:30:22