2014-09-20 106 views
0

我想寫小選擇這樣的使用MySQL變量WHERE子句中

select t.id,func(t.name) from table t where func(t.name)>0 

,但我想調用函數func只有一次

任何人可以幫助我嗎?

+0

您可以創建功能確定性,應允許MySQL來緩存結果。 – andy 2014-09-20 19:07:34

+0

優化器將消除常見的子表達式。僅僅因爲你兩次寫一個函數並不意味着它會被調用兩次。 – gexicide 2014-09-20 19:08:37

回答

0

使用HAVING

SELECT t.id, func(t.name) AS f 
FROM Table AS t 
HAVING f > 0