【问题标题】:mysql calculation field stored in another fieldmysql计算字段存储在另一个字段中
【发布时间】:2010-11-23 19:57:34
【问题描述】:

我在 mysql 中有如下所示的字段:

常量1,常量2,变量1,变量2,公式

公式字段存储使用常量1、常量2、变量1和变量2的公式。

例如,公式字段可能包含这样的计算:

常数1 * 变量1

当我使用这样的选择语句时:

SELECT constant1, constant2, variable1, variable2, formula
FROM table

如何根据公式字段检索constant1 * variable1的计算结果?

【问题讨论】:

    标签: mysql select calculated-columns


    【解决方案1】:

    您需要以下两种方法之一:

    • 在您的公式中调用某种eval 函数。
    • 将公式解析为表达式树,替换值,然后计算表达式。

    Usig eval 实现起来很快,但很危险,因为它可能会做一些你没想到的事情。最好使用用于构建解析器的专用库来解析公式,但如果您的表达式语法非常简单,您可以自己编写解析器而不使用库。在这两种情况下,SQL 都不是正确的语言。

    我建议找到一个可以帮助您解析公式的库。不过,无论您选择哪种路线,我都建议您在数据库客户端上完成大部分工作,而不是在 SQL 中。 SQL 根本不是为此类任务而设计的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      相关资源
      最近更新 更多