在我存储的函数中我有:
formula := "(10+10 * 1000)/12";
(一个简单的数学公式,只有数字,动态创建为一个字符串)
我如何评估它并返回结果?
我不能使用 EXECUTE(不能在存储函数中使用),如果我将它作为存储过程并从存储函数中调用它,我会得到“存储函数或触发器中不允许动态 SQL”-好像我会直接在函数内部进行评估。 我需要一个存储函数,而不是过程,因为我需要在 SELECT 语句中调用它。
最佳答案
我看不出使用公式能给您带来什么好处。如果您正在编写存储过程,请输入公式并忘记字符串。
我认为让存储过程变得如此动态是不符合您的利益的,因为被评估的公式必须随着调用而改变。
如果必须,您将不得不编写一个解析器将该字符串分解成它的组成部分,创建一个解析树,然后遍历树来评估它。这不是一个小问题。我会重新考虑这一点。
关于mysql - 如何在 MySQL 存储的_function_ 中评估一个简单的数学公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7331543/