2014-09-20 71 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