mysql - 如何在 MySQL 存储的_function_ 中评估一个简单的数学公式?

标签 mysql math eval formula stored-functions

在我存储的函数中我有:

formula := "(10+10 * 1000)/12";

(一个简单的数学公式,只有数字,动态创建为一个字符串)

我如何评估它并返回结果?

我不能使用 EXECUTE(不能在存储函数中使用),如果我将它作为存储过程并从存储函数中调用它,我会得到“存储函数或触发器中不允许动态 SQL”-好像我会直接在函数内部进行评估。 我需要一个存储函数,而不是过程,因为我需要在 SELECT 语句中调用它。

最佳答案

我看不出使用公式能给您带来什么好处。如果您正在编写存储过程,请输入公式并忘记字符串。

我认为让存储过程变得如此动态是不符合您的利益的,因为被评估的公式必须随着调用而改变。

如果必须,您将不得不编写一个解析器将该字符串分解成它的组成部分,创建一个解析树,然后遍历树来评估它。这不是一个小问题。我会重新考虑这一点。

关于mysql - 如何在 MySQL 存储的_function_ 中评估一个简单的数学公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7331543/

相关文章:

mysql - 如何按名称选择具有重复 ID 的最小日期组

Mysql多对多关系查询。如何获取过滤后帖子的所有标签?

python - 为什么我翻译成 Python 的 Haskell 不能正常工作?

javascript - 我怎样才能创建一个随机的数学语句并让计算机解决它?

Clojure eval 导致垃圾收集器挂起

Javascript 评估(和 friend )

PHP 多图像输入表单未将图像输入 MySQL 表列

mysql - 高效处理 SQL 数据库中已点赞的图片

php - 最有效的制作方式和赔率系统是什么?

ruby-on-rails - 允许在 Ruby/Rails 应用程序中使用用户定义的脚本