mysql计算字段存储在另一个字段中

时间:2010-11-23 19:57:34

标签: mysql select calculated-columns

我在mysql中的字段看起来像这样:

  

constant1,constant2,variable1,variable2,formula

公式字段存储使用constant1,constant2,variable1和variable2的公式。

例如,公式字段可能包含如下计算:

  

constant1 * variable1

当我使用这样的select语句时:

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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