Calcular Campo e Inserir valor com precisão numérica

Como eu faço para calcular o que está na coluna formula substituir e adicionar na coluna valor com precisão decimal?

Pode ser pelo banco de dados ou pelo PHP, mas eu quero aprender nos dois.

aconselho voce a fazer isso pelo php pois senão voce voce vai ter que fazer um script ou um trigger

Consegui resolver usando PHP e o banco.

Só vou melhorar minha pergunta e resposta.

Tenho uma tabela de expressões no MySQL.

Seguem três exemplos das várias expressões que possuo:

A) (((1598.39640165+0+(0/4853.93003386))/1576.07019804)-1)/(1/((1598.39640165*4853.93003386)/0))

B) (27054.76673436*111.82789404)/1000

C)(195064.41+173182.56+126566.82+113378.04999999999+99528.81+98537.55+92403.84+89775.27+86639.57000000002+84111.09+79466.78+78365.68+77493.75+75210.06+71980.86+68751.37+61878.849999999984+59396.67+56711.29+54465.65)/10841379.25

Cada uma dessas expressões, estão dentro de um campo na coluna formulaSubstituir da tabela do MySQL.

Eu não estava conseguindo calcular direto no PHP e nem no MySQL. Achei que teria que montar uma função ou no P|HP ou no banco, separando os operadores aritméticos para calcular os números das expressões por parte, de forma separada.

Mas, executando cada expressão separada no select, exemplo --> “select (27054.76673436*111.82789404)/1000”, consegui obter o resultado.

Então abaixo, segue como eu fiz:

/**

Pego as expressões da tabela no campo formulaSubstituir. */ $substituirTbIndicadoresFidc3 = $conn->prepare(" SELECT * FROM tabela; "); $substituirTbIndicadoresFidc3->execute();
while($row = $substituirTbIndicadoresFidc3->fetch(PDO::FETCH_ASSOC)){
$formulaSubstituir = $row[“formulaSubstituir”];

/**

  • Executo no Select cada expressão de forma separada, apelidando de valor o resultado.
    */
    $substituirTbIndicadoresFidc3_ = $conn->prepare(" select (" . $formulaSubstituir . ") as valor; ");
    $substituirTbIndicadoresFidc3_->execute();

/**

  • Pego a resposta do select acima e obtenho o valor.
    */
    while($row = $substituirTbIndicadoresFidc3_->fetch(PDO::FETCH_ASSOC)){
    $valor = $row[“valor”];

echo ‘-------------->>>>>>>>’ . “Fórmula para cálculo: $valor”. “







”;

};
}; };