mysql - 如何在sql中将方程值从字符串转换为int

标签 mysql sql

我有一个包含一些公式的表,我需要它的值作为 sql 的结果。

id Formula
-----------
1  5*power(2.7,n)
-----------
2  5+(5*power(4,n)-1.08
-----------

select REPLACE(Formula, 'n', 2) from table.

这是我的问题。 替换n后如何得到结果。

请指导我

最美好的祝愿

最佳答案

如果你想执行,那么动态sql可能就是你想要的

/*
drop table if exists t;
create table t (id int, formula varchar(100));
truncate table t;
insert into t values
(1 , '5*power(2.7,n)'),
(2 , '5+(5*power(4,n)-1.08)');
*/

select 
concat('select ',
REPLACE(Formula, 'n', 2),
';')
into @sql
from t
where id = 2;

#select @sql;

prepare stmt from @sql;
execute stmt;
deallocate prepare stmt;

我注意到您的第二个公式无效,因此您可能需要构建一些错误检查。

关于mysql - 如何在sql中将方程值从字符串转换为int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41505911/

相关文章:

java - 如何动态打印加载到文本框中的页面?

Mysql链式选择查询

sql - 在单个 SQL 查询中更新具有不同值的多行

sql - 如何编写带有日期和数组查找的 Ruby where 子句?

mysql - 获取包含子项和子项详细信息计数的父项的 MySQL 结果

javascript - 标记视频不适用于 onmouseover 和 onvideoout

用于复杂查询的 MySQL last_query_cost

javascript - 使用多个下拉列表过滤动态表结果

java - 将 netbeans 中的数据库移动到另一台计算机

SQL服务器: Linked-servers without linking servers?