0
我想写小选择这样的使用MySQL变量WHERE子句中
select t.id,func(t.name) from table t where func(t.name)>0
,但我想调用函数func
只有一次
任何人可以帮助我吗?
我想写小选择这样的使用MySQL变量WHERE子句中
select t.id,func(t.name) from table t where func(t.name)>0
,但我想调用函数func
只有一次
任何人可以帮助我吗?
使用HAVING
:
SELECT t.id, func(t.name) AS f
FROM Table AS t
HAVING f > 0
您可以创建功能确定性,应允许MySQL来缓存结果。 – andy 2014-09-20 19:07:34
优化器将消除常见的子表达式。仅仅因为你两次写一个函数并不意味着它会被调用两次。 – gexicide 2014-09-20 19:08:37