2015-07-21 56 views
0

我不是存儲過程方面的專家,但我想知道是否可以向遊標添加動態條件。在詢問之前,我環顧四周,但似乎沒有任何東西符合我的需求,或者我可以得到它。 我有兩個存儲過程,一個調用另一個。第一個存儲過程調用第二個存儲過程並傳遞一個名爲dynamic_sql_condition的構建的動態SQL字符串(「名字不喜歡等等)」。存儲過程動態WHERE條件SQL

這是第二個存儲過程的一部分:

declare resources cursor for select name from people where firstname = firstname {dynamic_sql_condition goes here} group by lastname; 

回答

0

您可以嘗試使用預處理語句,就像這樣:

PREPARE stmt1 FROM 'select name from people where firstname = firstname {dynamic_sql_condition goes here} group by lastname'; 
EXECUTE stmt1; 

可以適應這跟你的光標使用。更多信息:https://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

+0

那麼,這是如何工作的? PREPARE stmt1 FROM'blah';然後聲明資源光標爲stmt1? – FNMT8L9IN82

+0

由於你的SQL是動態的,你可以簡單地把它放入一個字符串中,就像上面的例子。然後在存儲過程中使用它。 –

+0

謝謝你,工作! – FNMT8L9IN82